我遇到过这样的代码:
line += addr & 0x3fULL;
Run Code Online (Sandbox Code Playgroud)
显然,'U'和'L'不是十六进制数字.我猜测该十六进制数字文字末尾的'ULL'意味着"无符号长龙" - 我是否正确?(这种事情很难谷歌)如果是这样那么这是数字上的某种后缀修饰符?
Jon*_*Mee 12
我正在提出一个新的答案,因为我认识到当前的答案并不是来自跨平台的来源.C++ 11标准规定带U/ u和LL/ llsuffix的文字是类型的文字:unsigned long long int [ source ]
U/ u是无符号整数的C/C++后缀.
LL/ ll是long long整数的C/C++后缀,它是C++ 11中的新类型,并且要求长度至少为64位.
笔记:
int,如果使用任何修饰符,则可以省略关键字unsigned long long.因此,这将定义one为unsigned long long int,并分配给它的任何数量将static_cast到unsigned long long int:unsigned long long one = 1auto.它将变量类型设置为声明时为其分配的类型.例如,由于2ULL是一个unsigned long long int文字two将被定义为一个unsigned long long int:auto two = 2ULLU/ u后缀必须在任何大小后缀之前.但是大约在C++ 14中,后缀以任意顺序被接受,所以这现在是一个法律3LLU文字unsigned long long int.