我在以下cpp代码中收到ClassID未声明错误。
#include "stdafx.h"
#include <iostream>
using namespace std;
#define RM_SESSION_MSG 0x11
#define DECLARE_RS232_MSG(ClassID)
enum
{
ID=ClassID
}
int main()
{
DECLARE_RS232_MSG(RM_SESSION_MSG)
return 0;
}
答案 0 :(得分:7)
您缺少行拼接字符
#define DECLARE_RS232_MSG(ClassID) \
enum \
{ \
ID=ClassID \
}
行拼接字符表示当前行和下一行合并为一行。
如果没有它们,宏定义将在行尾结束,因此代码中的enum
实际上并不是宏DECLARE_RS232_MSG
的一部分。
在main
中的宏调用之后,你也错过了一个分号(在C ++中每个类或枚举定义之后需要一个分号)。