iam*_*ind 3 c c++ types integer
我遇到了如下代码:
#define SOME_VALUE 0xFEDCBA9876543210ULL
Run Code Online (Sandbox Code Playgroud)
这SOME_VALUE被分配到一些unsigned long long以后.
问题:
ULL在这种情况下是否需要有postfix ?在C中,一个十六进制文字得到第一类型的int,unsigned int,long,unsigned long,long long或unsigned long long可表示其值,如果它没有后缀.如果C++有相同的规则,我不会感到惊讶.
如果你想给一个文字比默认情况下更大的类型或者如果你想强制它的签名,你需要一个后缀,例如考虑
1 << 43;
Run Code Online (Sandbox Code Playgroud)
没有后缀,这是(几乎可以肯定)未定义的行为,但是1LL << 43;例如会很好.