【问题标题】:Can we call functions in #if statement?我们可以在#if 语句中调用函数吗?
【发布时间】:2010-11-15 03:10:05
【问题描述】:

这在 C 中可能吗?

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

【问题讨论】:

  • #if 不是语句,它是预处理器指令。预处理器指令是在定义函数之前处理的,所以没有。

标签: c if-statement c-preprocessor


【解决方案1】:

仅当 functionAfunctionB 是宏而不是函数时。

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      如果functionAfunctionB在编译时 扩展为整数常量,那么它们可以进行比较。正如 dan04 解释的那样,发生这种情况的唯一方法是它们是宏而不是函数。更多细节可以在the gcc documentation for #if找到,无论你使用什么编译器或平台,它都普遍适用。

      【讨论】:

        【解决方案4】:

        不,我们不能调用函数作为#if 指令的条件。 #if 中的条件只需为常量表达式即可。

        【讨论】:

          猜你喜欢
          • 2019-07-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-04-10
          • 2020-11-09
          • 2011-08-06
          • 1970-01-01
          相关资源
          最近更新 更多