【发布时间】:2010-11-15 03:10:05
【问题描述】:
这在 C 中可能吗?
#if functionA() < functionB()
//...
#endif
【问题讨论】:
-
#if不是语句,它是预处理器指令。预处理器指令是在定义函数之前处理的,所以没有。
标签: c if-statement c-preprocessor
这在 C 中可能吗?
#if functionA() < functionB()
//...
#endif
【问题讨论】:
#if 不是语句,它是预处理器指令。预处理器指令是在定义函数之前处理的,所以没有。
标签: c if-statement c-preprocessor
仅当 functionA 和 functionB 是宏而不是函数时。
【讨论】:
#if 语句是预处理器语句,代码函数不可用(但macros 可用)。
C Programming 提供了 C 预处理器用法的简单概述。
【讨论】:
如果functionA 和functionB 将在编译时 扩展为整数常量,那么它们可以进行比较。正如 dan04 解释的那样,发生这种情况的唯一方法是它们是宏而不是函数。更多细节可以在the gcc documentation for #if找到,无论你使用什么编译器或平台,它都普遍适用。
【讨论】:
不,我们不能调用函数作为#if 指令的条件。 #if 中的条件只需为常量表达式即可。
【讨论】: