整数リテラル: デフォルトでは必ずしも Int ではない
ループ内で反復する際、大きすぎる整数リテラルは予期しない問題を引き起こす可能性があります。通常、接尾辞のないリテラルは int として解釈されます。ただし、この仮定は非常に大きな値には当てはまらない可能性があります。
オーバーフローとプロモーション
整数リテラルが int (通常は 32 ビット) の範囲を超える場合、未定義動作 (UB) が発生する可能性があります。ただし、場合によっては、コンパイラがリテラルを、long int (通常は 64 ビット) などのより大きな型に自動的に昇格することがあります。
標準仕様
C と C 標準の両方で、整数リテラルの適切な昇格を規制しています。 types.
Example
整数リテラル 10000000000 を考えてみましょう。C 環境では、これは次のようになります。 long int として解釈されます。ただし、使用されているコンパイラが 32 ビット コンパイラである場合、リテラルが使用可能な整数型に対して大きすぎるため、コンパイル エラーが発生する可能性があります。
以上がC および C で大きすぎる整数リテラルがデフォルトで「int」にならない場合があるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。