我看到的大多数代码都使用缩写类型来声明变量,例如
long long x; // long long int x
short y; // short int y
我浏览了C ++ 11标准(Sec。3.9.1
),并且类型总是完全声明为long long int
。我找不到任何缩写类型。我很确定这些缩写符合标准,但我想确定是否确实如此。所以我的问题是上面的代码是否完全符合标准。
答案 0 :(得分:5)
是的,这是有效的,draft C++11 standard部分7.1.6.2
简单类型说明符中包含以下内容:
表10总结 简单类型说明符的有效组合及其指定的类型。
和表10
简单类型说明符及其指定的类型表示:
long long “long long int”
和
short “short int”
答案 1 :(得分:2)
是的。但是,因为,C ++ 99使用大小的类型
要好得多std::int8_t
std::int16_t
std::int32_t
std::int64_t
只要有可能,及其未签名的堂兄std::uint8_t
等。然后你知道你在处理什么。
请注意,编译器不必支持64位整数类型。
答案 2 :(得分:1)
是的,见7.1.6.2中的表10,它定义了从各种说明符组合到3.9中类型的映射。