缩写类型名称long long vs long long int,是否符合标准?

时间:2015-01-26 16:09:33

标签: c++ c++11 types language-lawyer

我看到的大多数代码都使用缩写类型来声明变量,例如

long long x; // long long int x
short y; // short int y

我浏览了C ++ 11标准(Sec。3.9.1),并且类型总是完全声明为long long int。我找不到任何缩写类型。我很确定这些缩写符合标准,但我想确定是否确实如此。所以我的问题是上面的代码是否完全符合标准。

3 个答案:

答案 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中类型的映射。