BohYoh.comトップページへ
C & C++ FAQ
目次

C C++ 整数定数の型は何ですか。

 整数定数(integer constant)《C++では整数リテラル(integer literal)と呼びます》の型は、基数、値、整数定数接尾語に依存します。
 たとえば100060000のように整数接尾語のない10進定数は、その値がint型で表現できる範囲に入っていればint型となり、そうでなくてlong型で表現できる範囲に入っていればlong型となり、そうでなければunsigned long型となります。
 このような規則をまためた表を以下に示します。

C / C++
接尾語のない10進定数 intlongunsigned long
接尾語のない8進定数/16進定数 intunsignedlongunsigned long
u/U接尾語つき unsignedunsigned long
l/L接尾語つき longunsigned long
u/Uとl/Lと接尾語つき unsigned long

C99
接尾語のない10進定数 intlonglong long
接尾語のない8進定数/16進定数 intunsignedlongunsigned longlong longunsigned long long
u/U接尾語つき unsignedunsigned longunsigned long long
l/L接尾語つき10進数 longlong long
l/L接尾語つき8進数/16進定数 longunsigned longlong longunsigned long long
u/Uとl/Lと接尾語つき unsigned longunsigned long long
ll/LL接尾語つき10進数 long long
ll/LL接尾語つき8進数/16進数 long longunsigned long long
u/Uとll/LL接尾語つき unsigned long long

■ 根拠 ■
標準C §6.1.3.2 Integer constants
標準C99 §6.4.4.1 Integer constants
標準C++ §2.13.1 Integer literals

戻る

BohYoh.comロゴ