c++ - 有符号整数溢出未定义行为
问题描述
有符号整数溢出是未定义的行为
但它没有参考 C++ 标准,所以我尝试自己在 ISO/IEC 14882(2020-12 第六版)中查找它。在第 148 页的第 7.7 节中,我发现 ( 5.7 )
具有第 4 条到第 15 条 ^84 中规定的未定义行为的操作;
参考脚注84(草案中的76 )告诉我
这包括例如有符号整数溢出 ( 7.2 )、某些指针算术 (7.6.6)、除以零 (7.6.5) 或某些移位操作 (7.6.7)。
接下来我在第7.2章中搜索了“未定义” ,我只得到了 7.2.1 ( 11 ) 和 ( 11.3 ) 和 7.2.2 ( 1 ) 但我要么不理解这些句子,要么它们与有符号整数溢出无关。
脚注 84 中的引用不正确吗?它应该引用 7.1 ( 4 ) 吗?
如果在计算表达式期间,结果未在数学上定义或不在其类型的可表示值范围内,则行为未定义。
如果参考是正确的,有人可以用简单的语言解释 7.2 在哪里以及如何使有符号溢出未定义行为?
解决方案
由于针对这种情况打开了拉取请求,因此对第 7.2 章的引用似乎是错误的,应该改为 7.1。
推荐阅读
- firebase - 如何让谷歌端点 API 使用 Firebase 身份验证?
- javascript - 如何将UTC时间转换为浏览器的本地时区?
- regex - 正则表达式匹配多个不同的行
- vue.js - 是否可以将 HTML 添加到 Vue.js 中的插槽字符串?
- javascript - 获取 NaN 值而不是整数
- neo4j - Neo4j 运行“MATCH”的所有方法
- python - 如何在 Django 中使用 AWS 简单电子邮件服务 (SES)?
- python - Docker 与 Jupyter Notebook 和 Spark
- javascript - Map 类型的 Immutable.js 拆分键
- javascript - html div 中的未知内容