我在以下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;
}
最佳答案
您缺少线拼接字符
#define DECLARE_RS232_MSG(ClassID) \
enum \
{ \
ID=ClassID \
}
行拼接字符说当前行和下一行合并为一行。
没有它们,宏定义将在行尾结束,因此代码中的
enum
并不是宏DECLARE_RS232_MSG
的一部分。在
main
中的宏调用之后,您还会错过分号(在C ++中,每个类或枚举定义后都需要有一个分号)。关于c++ - 在宏定义中出现错误-C++,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5895374/