6

我的gcc编译器允许我将 unsigned long long(即 64 位)文字定义为

#define A_LITERAL 0x1ull

- - 或者 - -

#define A_LITERAL 0x1llu

这两个文字陈述之间有什么区别。这对其他 C 编译器是否常见?

4

3 回答 3

6

两者都是相同的:摘自 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
于 2013-06-25T01:26:15.793 回答
3

C 标准(第 6.4.4.1 节)允许两者。

无符号后缀u可以在 long l(或 long long ( ll))后缀之前或之后。

于 2013-06-25T01:26:22.000 回答
0

ullllu强制编译器将常量视为unsignedand long long integer。和
的顺序无关紧要,也无关紧要。你也可以写或。lluLLUULL

于 2013-06-25T01:32:08.127 回答