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

一个很纠结的结构有关问题

2012-03-09 
一个很纠结的结构问题定义了一个结构体C/C++ codetypedef struct tagRequestPersonListPack{BYTE cmd// 0

一个很纠结的结构问题
定义了一个结构体

C/C++ code
typedef struct tagRequestPersonListPack    {        BYTE cmd;    // 0x21        unsigned short usID;    // 设备ID        unsigned short usReserve;    // 保留字段            } REQUESTPERSONLISTPACK, *PREQUESTPERSONLISTPACK;

在源文件中写入了下列代码.编译无法通过
C/C++ code
            CString str;str.Format("%dusid:%d-usReserver:%d",PREQUESTPERSONLISTPACK->cmd,REQUESTPERSONLISTPACK->usID,REQUESTPERSONLISTPACK->usReserve);            ::AfxMessageBox(str,MB_OK);


错误:
error C2275: 'PREQUESTPERSONLISTPACK' : illegal use of this type as an expression说非法使用一个表达式类型,不晓得到底是怎么搞的

[解决办法]
你的PREQUESTPERSONLISTPACK只是一个结构体(指针)类型,不是一个变量,不能拿来直接用于存放数据
你需要用这个类型说明符先声明一个变量先:PREQUESTPERSONLISTPACK p;
C/C++ code
str.Format("%dusid:%d-usReserver:%d",p->cmd,p->usID,p->usReserve);            ::AfxMessageBox(str,MB_OK);
[解决办法]
PREQUESTPERSONLISTPACK 是类型非变量
[解决办法]
1楼正确。

REQUESTPERSONLISTPACK是类型名,不是变量名

热点排行