我不明白为什么以下代码无法编译:
#include <iostream>
#define SHORT_NAME 4;
int func(int arg)
{
return arg;
}
int main()
{
return func(SHORT_NAME); // Error: expected a ')'
}
我应该改用const int SHORT_NAME = 4
第 2 行吗?
我不明白为什么以下代码无法编译:
#include <iostream>
#define SHORT_NAME 4;
int func(int arg)
{
return arg;
}
int main()
{
return func(SHORT_NAME); // Error: expected a ')'
}
我应该改用const int SHORT_NAME = 4
第 2 行吗?
预处理器扩展 MACRO 名称。所以这:
return func(SHORT_NAME);
变成这样:
return func(4;);
这绝对是一个语法错误,不是吗?
因此,如果您没有定义 MACRO,;
那么它将起作用:
#define SHORT_NAME 4 //without ;
我应该在第 2 行使用 const int SHORT_NAME = 4 吗?
是的。去吧。无论如何(在大多数情况下),宏都是邪恶的。
您的定义中不需要分号。改写这个
#define SHORT_NAME 4
但是const int
在使用 C++ 时 using 绝对是更好的选择。