|
使用IAR版本6.0 定义了union
定义如下
//-------------------服务器获取参数------------------------------------------------
#define HOST_GETPARAM_LENGTH 9 //
typedef union
{
struct
{
U8 FHead_H;
U8 FHead_L;
U8 FLen_H;
U8 FLen_L;
U8 Cmd;
U8 CRC_H;
U8 CRC_L;
U8 FEnd_H;
U8 FEnd_L;
}HOST_GETPARAM;
U8 Str[HOST_GETPARAM_LENGTH];
}HOST_GETPARAM_Type;
//--------------------采集终端上传参数及状态----------------------------------------------
#define DEVICE_UPLOADPARAM_LENGTH 64
union
{
struct
{
U8 FHead_H;
U8 FHead_L;
U8 FLen_H;
U8 FLen_L;
U8 Cmd;
U8 DevID_B4;
U8 DevID_B3;
U8 DevID_B2;
U8 DevID_B1;
U8 WorkMode;
U8 SPS_H;
U8 SPS_L;
U8 PZThdH;
U8 PZThdL;
U8 P01Coeff_H;
U8 P01Coeff_L;
U8 P02Coeff_H;
U8 P02Coeff_L;
U8 P03Coeff_H;
U8 P03Coeff_L;
U8 P04Coeff_H;
U8 P04Coeff_L;
U8 WorkStatus;
U8 LiVolt_H;
U8 LiVolt_L;
U8 NC[33];
U8 CRC_H;
U8 CRC_L;
U8 FEnd_H;
U8 FEnd_L;
}DEVICE_UPLOADPARAM;
U8 Str[DEVICE_UPLOADPARAM_LENGTH];
}DEVICE_UPLOADPARAM_Type;
//------------------------服务器设置参数----------------------------------------
#define HOST_SETPARAM_LENGTH 64
union HOST_SETPARAM_Type
{
struct
{
U8 FHead_H;
U8 FHead_L;
U8 FLen_H;
U8 FLen_L;
U8 Cmd;
U8 DevID_B4;
U8 DevID_B3;
U8 DevID_B2;
U8 DevID_B1;
U8 WorkMode;
U8 SPS_H;
U8 SPS_L;
U8 PZThdH;
U8 PZThdL;
U8 P01Coeff_H;
U8 P01Coeff_L;
U8 P02Coeff_H;
U8 P02Coeff_L;
U8 P03Coeff_H;
U8 P03Coeff_L;
U8 P04Coeff_H;
U8 P04Coeff_L;
U8 NC[36];
U8 CRC_H;
U8 CRC_L;
U8 FEnd_H;
U8 FEnd_L;
}HOST_SETPARAM;
U8 Str[HOST_SETPARAM_LENGTH];
};
编译通不过 错误如下
Error[Pe256]: invalid redeclaration of type name "HOST_GETPARAM_Type" (declared at line 118) E:\@FWD移动标定\FWD-ADJ-IAR\SRC\User\def.h 118
Error[Pe147]: declaration is incompatible with "union DEVICE_UPLOADPARAM_Type" (declared at line 159) E:\@FWD移动标定\FWD-ADJ-IAR\SRC\User\def.h 159
Error[Pe101]: "HOST_SETPARAM_Type" has already been declared in the current scope (at line 164) E:\@FWD移动标定\FWD-ADJ-IAR\SRC\User\def.h 164
呵呵 C没学的好!一知半解的!只能用标题吸引一下!
求教版主 刚好普及一下union!
[ 本帖最后由 shirl 于 2013-9-18 01:03 编辑 ]
|
|