郑树新 24-09-27 19:46

遇到程序 bug 本就很难调了,如果遇到编译器 bug 就更加难调,而且会出现很多诡异事件。今天在 Free BSD 上使用 gcc4.1.8 编译程序后运行总是崩溃,找半天原因,原来是代码里的一些全局变量没有声明为 static,也没有用 extern 导出,导致编译器在优化时将这些变量放在了错误的位置,然后程序一运行就崩溃;有时即使有些代码逻辑没有走到,也会因为编译器的优化而出现问题。所以说越底层的逻辑越需要稳定性,一旦出问题就是毁灭性的。

发布于 北京