![]() |
1
4
有符号整数溢出 is undefined behavior in the current C++ standard . 编译器可以自由地假定未定义的行为不会发生,并且不需要编译依赖于未定义行为的代码。 这意味着编译器可以安全地假定,增加大于0的正值不会导致负值或0。 您的编译器正在积极地优化代码。编译器看到一个变量被初始化为一个正值,并递增。因此,编译器假定结果不能是负数或0,因此甚至不会编译比较,因为它不可能是真的。 |
![]() |
Imran · Nim编译器优化标志 7 年前 |
![]() |
Mário Feroldi · 在运行时调用代码中未调用的函数 7 年前 |
![]() |
Artemis · 寄存器与指令之间的差异 7 年前 |
![]() |
pandascope · golang编译器是否使用常数折叠? 7 年前 |
![]() |
Marc · C优化:为什么编译器不将对象视为常量? 7 年前 |