デフォルトの Int コンテキストの 64 ビット整数リテラル
プログラミングでは、整数リテラルは整数を表します。通常、これらのリテラルは、通常 32 ビット幅のデフォルトの整数データ型に割り当てられます。ただし、特定の状況では、より大きな整数リテラルがデフォルトで作成されることがあります。
そのようなケースの 1 つは、整数リテラルがデフォルトの整数型の範囲を超える場合です。たとえば、 C および C では、「L」が付加されていないリテラルには、その値を表すことができる型があります。値が int 型に対して大きすぎる場合、long int または long long int 型に昇格されます。
この昇格により、リテラルが 32- としてキャストされた場合に発生するオーバーフローの問題が解決されます。ビット整数。 C 11 標準は、[lex.icon] ¶2 でこの動作を指定し、リテラルの型が値を表現できる指定されたリストの最初になると述べています:
int long int long long int
同様に、C99 はこれを定義しています。 §6.4.4.1 のプロモーションメカニズム。これにより、整数リテラルがデフォルトの整数範囲を超えた場合でも、暗黙的により大きな型に変換され、正しく表現できるようになります。
まれに、整数リテラルが依然として大きすぎる可能性があります。利用可能な整数型。その場合、C99 と C11 の両方で、リテラルがサポートされている型で表現できないことを示すコンパイル エラーが発生します。これにより、整数オーバーフローによる実行時の問題が防止されます。
以上が整数リテラルはいつ 64 ビットになりますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。