我可以假設 (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中文網其他相關文章!