【发布时间】:2025-12-06 14:15:03
【问题描述】:
我正在尝试理解预处理器的语法。它非常简单的代码行返回“ON”或“OFF”。但是我完全不知道究竟是什么条件?
我理解C的条件语句如下:
? x : y
如果条件?返回 - 替换? x : 或 y 这行代码如下:
#define ONOFF(a) ((a) ? "ON" : "OFF")
我不明白这里必须满足什么条件?条件是 a 必须不是 null 吗?
【问题讨论】:
-
“陈述”是指“表达”吗?这是两个非常不同的东西。
-
就像您可以在 C++ 语法中编写
if(a)一样 - 这意味着a必须是 truthy。 Falsy 将只有false、0或NULL(类似于(void*)0)。 -
第一个操作数的类型与第二个和第三个操作数的类型无关。
标签: c macros c-preprocessor conditional-operator