尝试构建应用程序时,我有以下代码会生成错误:

#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/

10-13 01:20