我看到的大多数代码都使用缩写类型来声明变量,如
long long x; // long long int x
short y; // short int y我浏览了C++11标准(Sec )。3.9.1),并且类型总是完全声明为long long int。我找不到任何提到缩写类型的地方。我很确定这些缩略语是符合标准的,但我想确定是否确实如此。因此,我的问题是,上述代码是否完全符合标准。
发布于 2015-01-26 16:13:02
是的,这是有效的,它在起草C++11标准节7.1.6.2简单类型说明符中讨论过,说明如下:
表10总结了简单类型说明符的有效组合及其指定的类型.
在表10中,简单类型说明符和它们指定的类型如下:
long long “long long int”以及:
short “short int”发布于 2015-01-26 16:13:53
是的。但是,既然,C++99使用这些大小的类型要好得多
std::int8_t
std::int16_t
std::int32_t
std::int64_t和他们没有签名的表兄弟std::uint8_t等只要有可能。那你就知道你在对付什么了。
请注意,编译器不必支持64位整型。
发布于 2015-01-26 16:12:24
是的,参见7.1.6.2中的表10,其中定义了从各种说明符组合到3.9的类型之间的映射。
https://stackoverflow.com/questions/28153959
复制相似问题