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