首頁 > 後端開發 > C++ > 我可以始終假設'(bool)true”等於 C 中的'(int)1”嗎?

我可以始終假設'(bool)true”等於 C 中的'(int)1”嗎?

Patricia Arquette
發布: 2024-11-28 18:44:11
原創
1049 人瀏覽過

Can I Always Assume `(bool)true` is Equivalent to `(int)1` in C  ?

我可以假設 (bool)true 和 (int)1 在編譯器之間相等嗎?

目前的問題圍繞著是否相等(bool)true == (int)1 對於 C 編譯器普遍成立。換句話說,我們可以放心地假設這兩個表達式的可互換性嗎?

根據提供的回應,答案是響亮的「是」。由於積分提升,演員本身是多餘的。積分提升規定 bool 值會自動提升為 int,其中 true 特別提升為整數值 1。

此行為在C 標準的第4.7 節[conv.integral] / 4 中有詳細說明,其中明確指出「如果來源類型為bool...true 會轉換為1。」

因此,表達式true == 1 本質上等同於1 == 1,無論使用什麼編譯器,其計算結果均為true。

以上是我可以始終假設'(bool)true”等於 C 中的'(int)1”嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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