質問:
bool に格納された値は保証されていますか?変数は整数 (int) に変換すると 0 または 1 になりますか?
答え:
はい、保証されています。
理由:
C と C プログラミング言語は両方とも、ブール値が整数に変換されるときの動作を明確に定義しています。
C では、C 標準 (§4.5) /4) ステートメント:
「bool 型の右辺値は、false が 0 になり、true が 1 になることで、int 型の右辺値に変換できます。」
C では、C 標準 ( §6.3.1.2/1) は次のように述べています:
「スカラー値が _Bool に変換されるとき、値が 0 と等しい場合、結果は 0 になります。そうでない場合、結果は 1 です。」
_Bool 値が int に変換されるとき、int は 0 と 1 の両方を保持できるため、値はそのまま残ります (§6.3.1.3)。
したがって、次の事実を信頼できます。 bool 変数は、int に変換されると常に 0 または 1 のいずれかを含みます。
以上がbool 変数は整数にキャストされたときに 0 または 1 に変換されることが保証されていますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。