2010-11-15 93 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中的條件只需要是一個常量表達式。

相關問題