答案 0 :(得分:25)
根据C ++ 11标准的第2.14.2 / 2段,
整数文字的类型是表6中相应列表的第一个,其值可以是 表示。
表6报告了对于十六进制常量,类型应为:
int
;或(如果不合适)unsigned int
;或(如果不合适)long int
;或(如果不合适)unsigned long int
;或(如果不合适)long long int
;或unsigned long long int
。假设您的实施具有32位int
,因为0xffffffff
不适合int
,其类型应为unsigned int
。对于使用64位int
的实现,类型将为int
。
请注意,如果您编写了与十进制常量相同的文字,则该类型只能是:
int
;或(如果不合适)long int
;或(如果不合适)long long int
。