错误的宏定义casuses“预期表达式”错误

时间:2015-05-22 23:05:19

标签: c macros

我有这些宏:

#define TRUE 1;
#define FALSE 0;

我想在if条件下使用它们,例如:

if (functionThatReturnsIntZeroOrOne() == FALSE) do_something();

但是我收到了这样的错误消息:

"Expected expression". 

我做错了什么?

1 个答案:

答案 0 :(得分:6)

您将FALSE定义为0;,将其定义为0#define FALSE 0,不带分号)。分号中包含分号,因此FALSE会被0;替换,后者会在if条件中添加分号。