ホームページ >バックエンド開発 >C++ >整数リテラルが「int」ではないのはどのような場合ですか?

整数リテラルが「int」ではないのはどのような場合ですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-17 06:02:24150ブラウズ

When is an Integer Literal Not an `int`?

整数リテラルの型がデフォルトでは int ではない

プログラミングでは、通常、整数リテラルの型は int であると想定されます。ただし、これが当てはまらない場合もあります。

次の C コードを考えてみましょう。

for (i = 0; i < 10000000000; i++)

リテラル 10000000000 に「L」接尾辞が追加されていないにもかかわらず (明示的には長整数型を示します)、コンパイラはこの値が 32 ビットの範囲を超えていることを認識します。 integer.

C99 と C11 の両方の標準に従って、整定数の型は、その値を表すことができる表 6 の最初のエントリによって決まります。接尾辞のない 10 進定数の場合、表 6 では次の型を降順で指定しています。

  • long long int
  • long int
  • int

したがって、指定されたコードサンプルでは、​​コンパイラーはリテラルを長いものとして解釈します。

「大きすぎる」リテラルは一般にコンパイル エラーになることに注意することが重要です。これは、値が許可されている型のいずれでも表現できないためです。

以上が整数リテラルが「int」ではないのはどのような場合ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。