我在以下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;
}
Run Code Online (Sandbox Code Playgroud)
您缺少行拼接字符
#define DECLARE_RS232_MSG(ClassID) \
enum \
{ \
ID=ClassID \
}
Run Code Online (Sandbox Code Playgroud)
行拼接字符表示当前行和下一行合并为一行.
如果没有它们,宏定义将在行尾结束,因此enum代码中的宏不是宏的一部分DECLARE_RS232_MSG.
在宏调用之后你也会错过一个分号main(在C++中每个类或枚举定义之后需要一个分号).
| 归档时间: |
|
| 查看次数: |
85 次 |
| 最近记录: |