問題:
在 C/C 中,在預處理器 #if 條件中使用時,未定義常數的假定值是多少?這個假設是否可靠,或未定義的常數會產生不可預測的行為嗎?
答案:
根據 C99 標準,未定義的常數確實被假定為具有值0 用於評估 #if 條件。這在§6.10.1 ¶3:
中明確說明:「在執行了由於巨集擴展和定義的一元運算子而進行的所有替換後,所有剩餘的識別碼都將替換為pp- number 0。規定:
“由於巨集擴展而進行所有替換之後並且已執行定義的一元運算符,所有剩餘的標識符和關鍵字(除了true 和false)都將替換為pp-number 0。”
因此,您可以可靠地假設未定義的常數將被視為預處理器#if 條件中為0。
以上是預處理器 #if 條件中未定義的常數:已定義或未定義的結果?的詳細內容。更多資訊請關注PHP中文網其他相關文章!