typedef struct
{
#ifdef BIG_ENDIAN
unsigned char FLAG_TGyro :2;
unsigned char FLAG_RGyro :2;
unsigned char FLAG_RAcc :2;
unsigned char FLAG_YType :2;
#else
unsigned char FLAG_YType :2;
unsigned char FLAG_RAcc :2;
unsigned char FLAG_RGyro :2;
unsigned char FLAG_TGyro :2;
#endif
unsigned short timer;
short angle[2];
short gyro[3];
short acc[3];
unsigned short temp;
}VG_DATA_STRUCT vg_data;
typedef struct
{
double time;
double angle[2];
double gyro[3];
double acc[3];
double temp;
}VG_MEAS_STRUCT vg_meas;
最后的两个变量定义对么,为什么有这样的错误提示:error C2146: syntax error : missing ';' before identifier 'vg_data'
{
#ifdef BIG_ENDIAN
unsigned char FLAG_TGyro :2;
unsigned char FLAG_RGyro :2;
unsigned char FLAG_RAcc :2;
unsigned char FLAG_YType :2;
#else
unsigned char FLAG_YType :2;
unsigned char FLAG_RAcc :2;
unsigned char FLAG_RGyro :2;
unsigned char FLAG_TGyro :2;
#endif
unsigned short timer;
short angle[2];
short gyro[3];
short acc[3];
unsigned short temp;
}VG_DATA_STRUCT vg_data;
typedef struct
{
double time;
double angle[2];
double gyro[3];
double acc[3];
double temp;
}VG_MEAS_STRUCT vg_meas;
最后的两个变量定义对么,为什么有这样的错误提示:error C2146: syntax error : missing ';' before identifier 'vg_data'
{
#ifdef BIG_ENDIAN
unsigned char FLAG_TGyro :2;
unsigned char FLAG_RGyro :2;
unsigned char FLAG_RAcc :2;
unsigned char FLAG_YType :2;
#else
unsigned char FLAG_YType :2;
unsigned char FLAG_RAcc :2;
unsigned char FLAG_RGyro :2;
unsigned char FLAG_TGyro :2;
#endif
unsigned short timer;
short angle[2];
short gyro[3];
short acc[3];
unsigned short temp;
}VG_DATA_STRUCT;
VG_DATA_STRUCT vg_data;
typedef struct
{
#ifdef BIG_ENDIAN
unsigned char FLAG_TGyro :2;
unsigned char FLAG_RGyro :2;
unsigned char FLAG_RAcc :2;
unsigned char FLAG_YType :2;
#else
unsigned char FLAG_YType :2;
unsigned char FLAG_RAcc :2;
unsigned char FLAG_RGyro :2;
unsigned char FLAG_TGyro :2;
#endif
unsigned short timer;
short angle[2];
short gyro[3];
short acc[3];
unsigned short temp;
}VG_DATA_STRUCT;
VG_DATA_STRUCT vg_data;
上面定义的是那样的类型,下面有个这个类型的引用和赋值,该如何转换。
unsigned char chr,CheckSum,*PacketBody=&vg_data;
下面这段程序运行出了上面的错误是怎么回事?请教阿
while(TRUE)
{
switch(State)
{
/*waiting for header field*/
case 0:
/*no data available, return*/
if(!ReadFile(hCom,chr,1,NULL,NULL));
return FALSE;
/*if not header, skip char*/
if(chr!=HEADER)
{ break;
State=1;
Count=0;
}
/*Receiving packet body*/
case 1:
/*no data available, return*/
if(ReadFile(hCom,chr,1,NULL,NULL));
return TRUE;
PacketBody[Count++]=chr;
/*One data package*/
if(Count >= RECSIZE)
{
Count--; /*checksum not counted*/
CheckSum=CalcChecksum(PacketBody,Count);
/*Checksum correct?*/
if(ReadFile(hCom,chr,1,NULL,NULL)); 把上面两行代码末尾的“;”去掉
也可以定义一个结构指针再赋值:VG_DATA_STRUCT *p_vg_data=&vg_data;