首頁 > 後端開發 > C++ > C 的「if」語句可以處理多個變數宣告嗎?

C 的「if」語句可以處理多個變數宣告嗎?

Patricia Arquette
發布: 2024-11-27 17:58:14
原創
719 人瀏覽過

Can C  's

「if」表達式中的變數宣告:標準與編譯器怪癖

問題

在C 中,「if」語句條件中的變數聲明有一直是混亂和編譯器限制的主題。像下面這樣的程式碼片段經常會引起問題:

C 03 標準允許在「if」條件下聲明變量,範圍擴展到條件控制的子語句的末尾。但是,它沒有指定括號或多個聲明的限制。

限制

儘管標準有默許,但許多編譯器(包括 VS2008)強制執行限制:

  • 括號不能包含聲明。
  • 每個只允許一個聲明

一個更煩人的範例

在條件中聲明多個變數並為其分配特定值時,此限制可能特別煩人。考慮:

要輸入 x 設定為 false 的「if」主體,聲明周圍需要括號。但是,由於不允許使用括號,因此 x 必須在主體外部聲明,從而將其洩漏到更廣泛的範圍。

結論

在C 17 之前,「if」中多個變數聲明所需的語法「條件不符合標準。然而,編譯器經常施加進一步的限制。

C 17 解決方案

值得慶幸的是,C 17引入了解決此問題的新語法:

在 C 17 中,您現在可以使用分號將聲明與實際條件分開,從而允許多個變數聲明和括號。

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

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