C 中 if 表達式中的變數宣告
在 C 中,if 表達式條件中變數宣告的語法通常受到限制。問題是這樣的限制是基於標準的還是特定於編譯器的。
2003 C 標準 (6.4.3) 允許在 if 條件內宣告變量,範圍擴展到受控子語句。但是,它沒有明確禁止聲明周圍的括號或條件內的多個聲明。
C 的早期版本在括號和多個聲明方面的行為不一致。在提供的程式碼範例中:
此限制對於條件內只需要一個聲明的場景來說很不方便。
C 17 解決方案
C 17 對此引入了解決方案問題:
if (int a = Func1(), b = Func2(); a && b) { // Do stuff with a and b. }
此語法使用分號(;) 將聲明與條件分隔開。它允許在一個條件內聲明多個變量,消除了先前的不便。
以上是C 的 if 表達式可以跨標準和編譯器一致地處理變數宣告嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!