0

尝试使用在预处理器指令中定义的变量时:

  #define TIME_CONST 20;

在一段时间内:

  while(i<TIME_CONST){...}

我收到一个抱怨括号的错误...

当我使用:

  while(i<20)

一切正常。

我究竟做错了什么?

先感谢您!

4

1 回答 1

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;

现在;很好,实际上是语言所要求的。

于 2013-03-08T12:31:27.543 回答