我的gcc
编译器允许我将 unsigned long long(即 64 位)文字定义为
#define A_LITERAL 0x1ull
- - 或者 - -
#define A_LITERAL 0x1llu
这两个文字陈述之间有什么区别。这对其他 C 编译器是否常见?
两者都是相同的:摘自 C++11 标准的 n3337 草案:
integer-suffix:
unsigned-suffix long-suffix(opt)
unsigned-suffix long-long-suffix(opt)
long-suffix unsigned-suffix(opt)
long-long-suffix unsigned-suffix(opt)
unsigned-suffix: one of
u U
long-suffix: one of
l L
long-long-suffix: one of
ll LL
C 标准(第 6.4.4.1 节)允许两者。
无符号后缀u
可以在 long l
(或 long long ( ll
))后缀之前或之后。
ull
或llu
强制编译器将常量视为unsigned
and long long integer
。和
的顺序无关紧要,也无关紧要。你也可以写或。ll
u
LLU
ULL