首頁 >後端開發 >C++ >C 是否保證 `(bool)true` 等於 `(int)1`?

C 是否保證 `(bool)true` 等於 `(int)1`?

Susan Sarandon
Susan Sarandon原創
2024-12-20 15:06:15363瀏覽

Does C   Guarantee that `(bool)true` Equals `(int)1`?

C 編譯器能否保證 (bool)true 等於 (int)1?

問題出現:是否可以假設 (bool) true 等於 (int)1,無論 C 編譯器是什麼使用過?

答案:

是的,這個假設對於所有 C 編譯器都成立。表達式中的強制轉換是多餘的。 bool 值直接轉換為 int,依照積分提升的要求,得到值為 1 的 int。

參考:

依據 4.7 [conv .integral] / 4, 「如果來源型別為 bool...true 會轉換為 1。」

以上是C 是否保證 `(bool)true` 等於 `(int)1`?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn