尝试构建应用程序时,我有以下代码会生成错误:
#define LPAFDU LPBYTE;
typedef struct appAfDataIndIeee_tag
{
integrPktHead_t head;
BYTE flags;
WORD dstShort;
BYTE dstEndpoint;
BYTE srcShort;
BYTE srcIeee[8];
WORD clusterId;
BYTE afduLength;
LPAFDU afdu; // <-- error
} appAfDataIndIeee_t;
这是它生成的错误:
如果我将
LPADFU
替换为LPBYTE
,则编译成功。我更喜欢使用LPADFU
的定义或类型定义。有谁知道我该怎么做?谢谢。 最佳答案
删除#define
末尾的分号(它是宏的一部分):
#define LPAFDU LPBYTE
但是,更好的方法是使用
typedef
而不是#define
:typedef LPBYTE LPAFDU;
typedef的最重要优点是它们遵守范围规则。
关于c++ - LPBYTE宏在编译时生成错误-C++,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4504109/