bool 到int 轉換
考慮以下程式碼片段:
int x = 4 < 5; assert(x == 1); x = 4 > 5; assert(x == 0);
問題出現了:這個轉換是不是這個轉換是便攜的?我們能保證兩個斷言都通過嗎?
答案:
是的,這個轉換是完全可移植的並且符合 C 標準。從 bool 到 int 的明確轉換在 C 中是隱式的,如 C 11 或 14 標準的 §4.7/4 以及 C 17 標準的 §7.8/4 所定義。
具體來說,標準指出:「如果來源類型為bool,則值false 會轉換為0,值true 會轉換為1。」
因此,在給定的情況下碼:
C 註解:
在 C 中,bool 資料類型不是展示。然而,C99引入了_Bool類型,它是stdbool.h頭檔中定義的巨集。此外,true 和 false 分別是擴展為整數常數 1 和 0 的巨集。
因此,在 C:
以上是Bool 到 Int 的轉換可以在 C 和 C 移植嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!