在C 中,「if」語句條件中的變數聲明有一直是混亂和編譯器限制的主題。像下面這樣的程式碼片段經常會引起問題:
C 03 標準允許在「if」條件下聲明變量,範圍擴展到條件控制的子語句的末尾。但是,它沒有指定括號或多個聲明的限制。
儘管標準有默許,但許多編譯器(包括 VS2008)強制執行限制:
在條件中聲明多個變數並為其分配特定值時,此限制可能特別煩人。考慮:
要輸入 x 設定為 false 的「if」主體,聲明周圍需要括號。但是,由於不允許使用括號,因此 x 必須在主體外部聲明,從而將其洩漏到更廣泛的範圍。
在C 17 之前,「if」中多個變數聲明所需的語法「條件不符合標準。然而,編譯器經常施加進一步的限制。
值得慶幸的是,C 17引入了解決此問題的新語法:
在 C 17 中,您現在可以使用分號將聲明與實際條件分開,從而允許多個變數聲明和括號。
以上是C 的「if」語句可以處理多個變數宣告嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!