My gcc
compiler allows me to define an unsigned long long (i.e. 64-bit) literal as
#define A_LITERAL 0x1ull
--- or ---
#define A_LITERAL 0x1llu
Is there any difference between these two literal statements. Is this common to other C compilers?
Both are the same: excerpt from n3337 draft of C++11 standard:
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
Both are allowed by the C standard (section 6.4.4.1).
The unsigned suffix u
can be before or after the long l
(or long long (ll
)) suffix.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With