首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

GCC -O2 踩坑指南:严格别名(Strict Aliasing)与整数环绕(Integer Wrap-around)

Bug 的方法 推荐处理顺序为从左到右: 改代码 > -fno-strict-aliasing > 不开 GCC -O2 优化 > -Wno-strict-aliasing (掩耳盗铃,强烈不建议) Linux...其实如果按照 GCC 那帮人的严格别名(Strict Aliasing)标准,Linux 代码有一半都跑不起来。...在 #include 头文件中有两个宏定义,INT_MAX:2147483647(整形最大值),INT_MIN:-2147483648(整形最小值),x 初始化为:INT_MAX(...printf("%d\n", i); } } 在 GCC 开启 -O2 编译优化时,默认开启 -fstrict-overflow 编译优化,有符号整数的溢出行为为未定义行为,在 i 到达值 INT_MAX...而在 GCC 开启 -O2 -fwrapv 编译参数时,循环将在执行 INT_MAX 次后停止。

26110
领券