は、誰かが私にどのようにC暗黙の変換?
printf("%d", -2<2u?1:-1);
プリントを説明することができます '-1'。何らかの暗黙的な変換が行われていると仮定していますが、わかりません。
は、誰かが私にどのようにC暗黙の変換?
printf("%d", -2<2u?1:-1);
プリントを説明することができます '-1'。何らかの暗黙的な変換が行われていると仮定していますが、わかりません。
-2
はunsigned integer
に変換されています。これはUINT_MAX - 1
に等しくなりますが、これは確かに2
より大きくなります。したがって、条件は失敗し、-1
が印刷されます。
すべての警告を有効にします。*「警告C4308:符号なしタイプに変換された負の整数定数」*が問題を説明しています。 –
ここで、なぜこのコード 'if((-2 <2u-1u:-1)> 0){printf(" - 1> 0 "); } 'print '-1> 0' :) – Lundin
@ Lundinあなたは[This](http://pastebin.com/raw/Ss7pW8hb)のようなものですか? – Michi