2010-11-15 140 views
2

这可能在C吗?我们可以在#if语句中调用函数吗?

#if functionA() < functionB() 
    //... 
#endif 
+2

'#if'不是一个语句,它是一个预处理指令。预处理器指令在定义函数之前被处理,所以没有。 – 2010-11-15 03:27:45

回答

7

只有functionAfunctionB是宏,而不是功能。

0

#if语句是预处理语句,代码函数不可用(但是macros是)。

C Programming提供了C预处理器用法的简单概述。

0

如果functionAfunctionB扩展在编译时间为整数常量,然后他们可以比较。这可能发生的唯一方法是,如果他们是宏而不是函数,就像dan04解释的那样。更多详细信息可以在the gcc documentation for #if中找到,无论您使用什么编译器或平台,它都可以使用。

0

不,我们不能将一个函数作为条件调用到#if指令。 #if中的条件只需要是一个常量表达式。

相关问题