关于C++定义二维数组的问题

2024-10-29 17:47:12
推荐回答(3个)
回答1:

三个问题:
1.缺少头文件
2.二维数组定义有问题不能给它那样直接赋值byte output[][]=0;
3.少了变量input[][]定义,我给你加上了,请看看:

#include

void main()
{

//初始化变量
int temp1[8],temp2[8];

int enable,_redata,enabledata;

int inputdata[8],outputdata[8];

int redata[15];//寄存器

BYTE output[8][204];
BYTE Input[8][204];

for(int m=0;m<=7;m++)

{

for( int n=0;n<=187;n++)

{

//m=0并且n=15表示初始化寄存器和进行同步字节反转的标志

if(m==0&&n==0)

{

//初始化寄存器redata

for(int i=0;i<=14;i++)

{

if(i==0||i==3||i==5||i==7)

{

redata[i]=1;

}

else

{

redata[i]=0;

}

}

//同步字节按比特反转

output[m][16+n]=~Input[m][16+n];

}

//其余的同步字节不参于加扰,按照原始字节输出

else if(m!=0&&n==0)

{

output[m][16+n]=Input[m][16+n];

}

//信息位(非同步字节)进行加扰

else

{

for(int j=0;j<=7;j++)

{

//读取字节Input里面的信息比特

inputdata[j]=Input[m][16+n]%2;

//字节Input右移一位

Input[m][16+n]>>=1;

}

//加扰运算

for (int i=0;i<=7;i++)

{

_redata=redata[13]^redata[14];

for(int j=14;j>=1;j--)

{

redata[j]=redata[j-1];

}

redata[0]=_redata;

enabledata=enable&_redata;

outputdata[i]=enabledata^inputdata[i];

}

//加扰后的比特赋给字节output

for ( i=0;i<=7;i++)

{

output[m][16+n]=output[m][16+n]|((BYTE)outputdata[i]<<1);

}

}

}

}

}

回答2:

C++没有BYTE这个类型定义的;
你可以用 char 就可以了

回答3:

把 BYTE 改成 char

另外,你好像少写了几个 { 的另一半。