首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

结构体定义的有关问题

2013-03-27 
结构体定义的问题struct MSG_HEAD{WORDdwCmdId//命令IDDWORD dwLength//整个数据包长度数据包头部+数据

结构体定义的问题
struct MSG_HEAD
{
  WORD  dwCmdId;//命令ID
  DWORD dwLength;//整个数据包长度=数据包头部+数据包体
};


struct MSG_LOGIN
{
  BYTE szUserName;//用户登录ID
  BYTE szPassword;//登录密码
};


struct MSG_LOGIN_RESP
{
  BYTE dbResult;//登录结果:0=成功,1=用户名或密码错
};


struct MSG_UP
{
  DWORD dwLength;//后面内容字段的长度
  BYTE szContent[256];//内容,不等长,长度由dwLength指定
};


struct MSG_DOWN
{
  BYTE szSender[12];//消息发送者
  DWORD dwLength;    //后面内容字段的长度
  BYTE szContent[256];//内容,不等长,长度由dwLength指定
};


struct MSG_STRUCT
{
  MSG_HEAD MsgHead; 
  union 
  {
    MSG_LOGIN Login; 
    MSG_LOGIN_RESP LoginResp; 
    MSG_UP MsgUp; 
    MSG_DOWN MsgDown; 
  };
};

全部是自定义的结构体,红色部份出现错误:

error C2061: syntax error : identifier 'MSG_HEAD'
error C2061: syntax error : identifier 'MSG_LOGIN'
error C2061: syntax error : identifier 'LoginResp'
error C2061: syntax error : identifier 'MsgUp'
error C2061: syntax error : identifier 'MsgDown'
求解决 struct
[解决办法]
struct MSG_STRUCT
{
  struct MSG_HEAD MsgHead;  
  union 
  {
    struct MSG_LOGIN Login;  
    struct MSG_LOGIN_RESP LoginResp;  
    struct MSG_UP MsgUp;  
    struct MSG_DOWN MsgDown;  
  };
};

[解决办法]
看编译类型
按照C文件编译需要使用结构前,需要标识为 struct 
如果按照C++文件编译就不需要

热点排行