c - 错误的宏定义导致 "Expected expression"错误

标签 c macros

我有这些宏:

#define TRUE 1;
#define FALSE 0;

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

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

但我收到这样的错误信息:

"Expected expression". 

我做错了什么?

最佳答案

你定义FALSE0;,定义为0 (#define FALSE 0,没有分号)。分号包含在定义中,因此 FALSE 被替换为 0;,这会在您的 if 条件中放置一个分号。

关于c - 错误的宏定义导致 "Expected expression"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30407086/

相关文章:

c - 线程,定期生成 VS。陷入无限临时循环?

c - 在c中为全局变量赋值会导致错误

c - isalpha 实现 C

c - 如何在 C 中读取一行中的多个单词?

在 C 中的递归函数中收集数据

clojure - Clojure 中的动态记录

C 编程#define?

c++ - 在 C++ 中使用宏

macros - 如何将空白/空参数传递给 Rust 中的宏?

c - 使用宏的泛型编程 : tricks to determine type?