缩写类型名称长长与长长整数,是否符合标准
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
。我找不到任何提及缩写类型的内容。我很确定缩写符合标准,但想确定是否确实如此。所以我的问题是上面的代码是否完全符合标准。
是的,这是有效的,它在 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 中的类型的映射。
相关文章:
- 标准是否使用多余的大括号(例如 T{{{10}}})定义列表初始化?
- 编译器如何在使用SFINAE的函数和标准函数之间确定两者是否可行
- this_thread::sleep_for和计时时钟之间的关系是否由C++11标准指定
- 标准是否严格定义了该程序应该如何编译?
- 这是否符合C++标准:双响双响,例如!!(-0.0).
- C++标准是否允许<double>在没有开销的情况下实现 std::可选
- 是否允许使用带有"w+"模式的 freopen 进行标准设置?
- 移动后是否需要重置标准::列表?
- 标准是否保证无捕获的 lambda 为空?
- C++:带有大括号初始化列表的函数调用表达式 - 标准是否规定在单个元素列表的微不足道的情况下忽略大括号?
- 声明后,gcc 的动态大小数组是否与标准数组有效相同?
- C++11 标准是否保证零值有符号整数的一元减号为零?
- 是否有一种标准方法来计算两个 asctime() 值之间的天数
- 是否存在经过认证(ISO 26262或类似)C++标准库?
- C++规范是否特别对待标准 t 库?
- 是否有任何 C 标准函数将值"1"传递给所有 (%s)
- C++标准:是否有结果对象?
- 使用给定种子生成的随机数序列是否保证在标准版本中相同?
- 在此初始值设定项方法上将整个数组设置为 NULL 是否C++标准?
- 是否C++标准支持流程