B.3 常量

B.3.1 整型常量

整型常量是数字序列,前面可选地带有正号或负号。如果第一个数字为0,这个整数将被看作八进制常量,在这种情况中,它后面的所有数字必须在0-7之间。如果第一个数字是0且紧随其后的是字母x(或X),这个整数将作为十六进制常量,且后面的数字可以在范围0-9或a-f(或A-F)之间。

后缀字母l或L可以添加到十进制整型常量的末尾,使其成为long int常量。如果该值对于long int不适合,将作为long long int处理。如果将后缀字母l或L添加到八进制或十六进制常量的末尾,这些常量将在适合时作为long int,而在不适合时作为long long int。最后,如果它还不适合long long int,就会被看作unsigned long long int常量。

将后缀字母ll或LL添加到十进制整型常量的末尾可使其成为long long int。添加到八进制或十六进制常量的末尾时,这些常量将被首先看作long long int,如果此时不适合,就会被看作unsigned long long int常量。

后缀u或U可以添加到整型常量的末尾,使其成为unsigned。如果常量太大,不适合unsigned int,就会被看作unsigned long int。如果它大大超过了unsigned long int,它将被看作unsigned long long int。

unsigned和long后缀可同时添加到整型常量,以使其成为unsigned long int。如果常量太大不适合unsigned long int,它将作为unsigned long long int处理。

unsigned和long-long后缀可同时添加到整型常量,使其成为unsigned long long int。

如果无后缀的十进制整型常量太大,不适合有符号的int,它将被看作long int。如果它太大不适合long int,它将被看作long long int。

如果无后缀的八进制或十六进制整型常量太大不适合有符号的int,它将被看作unsigned int。如果它太大不适合unsigned int,它将被看作long int,如果它还是太大不适合long int,它将被看作unsigned long int。如果它太大不适合unsigned long int,它将被看作long long int。最后,如果它还太大不适合long long int,这个常量就会被作为unsigned long long int来处理。