C++相談室 part148at TECHC++相談室 part148 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト500:デフォルトの名無しさん 20/02/08 21:25:19.61 RKzyJDHj.net 正の型の値と負の型の値を比較する場合、ビット幅の大きいほうの型に変換されてから比較される� 501:ナすかね? 502:デフォルトの名無しさん 20/02/08 21:30:32.47 uvgcwZ2m.net 汎整数拡張でググれ 503:デフォルトの名無しさん 20/02/08 21:35:32.85 RKzyJDHj.net >>489 ググってみたんだけど。 https://kumikomiya.com/implicit-conversion/ これを見ると変換は起きないって事なのかな? 504:デフォルトの名無しさん 20/02/08 23:34:23.41 jnRyPLnj.net >>472 いや。TRUE は、必ず if 式で真と判定されるので、if (b == TRUE) としなくても if (b) で絶対十分であることは補償されている。 むしろ、if (b == TRUE) と書くのはバグの原因になるので駄目だと言われている。 505:デフォルトの名無しさん 20/02/08 23:51:17.72 jnRyPLnj.net なんというか、TRUE は、処理系ごとに変化する値ではなく、C/C++ においては、標準的には必ず 1 に #define されている。 一応分かり易さのために TRUE と書いているだけで、TRUEが2になったりする事は考える必要はない。 ただし、逆に、高速化のために 1 ではなく、非0の値を返してたまたまの値、 例えば、12 とかを返してくる関数が有りえる。 その場合、うっかり間違って if ( b == TRUE ) などと書いてしまっていたら 大変なことになるので、意味的に TRUE を返す場合には、 if ( b ) または、if ( b != 0 ) と書く方が安全だと考えられている。 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch