缩写类型名称长长与长长整数,是否符合标准



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

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

最新更新