首頁 > 後端開發 > C++ > C `if` 語句可以在其條件內宣告變數嗎?

C `if` 語句可以在其條件內宣告變數嗎?

Barbara Streisand
發布: 2024-11-27 19:57:13
原創
683 人瀏覽過

Can C   `if` Statements Declare Variables Within Their Conditions?

C 中「if」表達式內的變數宣告

在C 中,能夠在「if」語句的條件下宣告變數已成為限制的主題。編譯器(包括 Visual Studio 2008)經常遇到括在括號中的變數宣告或單一條件中的多個宣告的困難。

根據 2003 C 標準第 6.4.3 節,選擇語句中聲明的變數具有作用域延伸到由條件控制的子語句的末尾。但是,該標準沒有明確解決括號或多個聲明的使用。

例如,以下程式碼無法編譯:

if((int a = Func1()))
{
    // Fails to compile.
}
登入後複製

即使只需要一個聲明的情況,這種限制可能會令人沮喪。請考慮以下內容:

bool a = false, b = true;

if(bool x = a || b)
{

}
登入後複製

要在“if”主體範圍內將“x”設為“false”,聲明需要括號。但是,條件內不允許使用括號,從而強制在體外聲明“x”並將其洩漏到更廣泛的範圍。

從 C 17 開始,這些限制已解決。現在可以使用以下程式碼:

if (int a = Func1(), b = Func2(); a &&& b)
{
    // Do stuff with a and b.
}
登入後複製

使用 ';'代替“,”將聲明與條件分開,解決了先前的限制。

以上是C `if` 語句可以在其條件內宣告變數嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板