尝试使用预处理程序指令中定义的变量时:
#define TIME_CONST 20;
在一段时间内:
while(i<TIME_CONST){...}
我抱怨抱怨父母......
当我使用时:
while(i<20)
一切正常。
我做错了什么?
提前谢谢!
答案 0 :(得分:9)
#define TIME_CONST 20;
从最后删除;
。
由于;
,以下内容:
while(i<TIME_CONST){...}
成为这个:
while(i< 20;){...}
这是错的,不是吗?
在C ++(和C)中,宏是文本替换机制,因此TIME_CONST
的任何用法都将被20;
替换,因为它是如何被定义的
建议:尽可能避免使用宏。你在C ++中有更好的选择。使用const
(或constexpr
)来定义真正的常量对象:
const int TIME_CONST = 20;
现在;
很好,因为语言需要 。