次のような C コードを書いた古い記憶があります。
long value = 0;
古き良き Win16 の時代に、value
半分だけ初期化されてしまいました。つまり、下位 16 ビットが0
メモリ内のその場所にある任意のランダム ビットであり、上位 16 ビットがそうでした。そのため、私は次のように書く条件になりました。
long value = 0L;
これは、C99 および/または C++ の下で、この時代にまだ必要ですか? int
ILP32 がとが両方とも 32 ビットであることを指定していることは知っていますが、 s が 32 ビットでs が 64ビットのlong
LP64 を使用しているとします。接尾辞は必要ですか、それとも最新の形式の C および C++ では、リテラルが割り当てられている変数の長さに暗黙的に拡張されますか?int
long
符号なしの値はどうですか? つまり、これは必要ですか?
unsigned long value = 0UL;