缩写类型名称 long long 与 long long int,是否符合标准?
Abbreviated type name long long vs long long int, is it standard-compliant?
我看到的大多数代码都使用缩写类型来声明变量,例如
long long x; // long long int x
short y; // short int y
我浏览了 C++11 标准(第 3.9.1
节),类型总是被完整声明,如 long long int
。我找不到任何关于缩写类型的提及。我很确定这些缩写符合标准,但想确定是否确实如此。所以我的问题是上面的代码是否完全符合标准。
是的,见7.1.6.2中的table10,定义了各种说明符组合到3.9的类型的映射。
是的,这是有效的,它包含在 draft C++11 standard 部分 7.1.6.2
简单类型说明符 中:
Table 10 summarizes
the valid combinations of simple-type-specifiers and the types they specify.
在 Table 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 位整数类型。
我看到的大多数代码都使用缩写类型来声明变量,例如
long long x; // long long int x
short y; // short int y
我浏览了 C++11 标准(第 3.9.1
节),类型总是被完整声明,如 long long int
。我找不到任何关于缩写类型的提及。我很确定这些缩写符合标准,但想确定是否确实如此。所以我的问题是上面的代码是否完全符合标准。
是的,见7.1.6.2中的table10,定义了各种说明符组合到3.9的类型的映射。
是的,这是有效的,它包含在 draft C++11 standard 部分 7.1.6.2
简单类型说明符 中:
Table 10 summarizes the valid combinations of simple-type-specifiers and the types they specify.
在 Table 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 位整数类型。