ホームページ >バックエンド開発 >C++ >bool 変数は整数にキャストされたときに 0 または 1 に変換されることが保証されていますか?

bool 変数は整数にキャストされたときに 0 または 1 に変換されることが保証されていますか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-12 14:46:02552ブラウズ

Is a bool variable guaranteed to convert to 0 or 1 when cast to an integer?

Int に変換された場合の Bool の値の保証

質問:

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。