GCC 优化级别说明
- 在编译时,如果没有指定上面的任何优化参数,则默认为 -O0,即没有优化。
在GCC相关手册中查到。
https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options
Without any optimization option, the compiler’s goal is to reduce the cost of compilation and to make debugging produce the expected results. Statements are independent: if you stop the program with a breakpoint between statements, you can then assign a new value to any variable or change the program counter to any other statement in the function and get exactly the results you expect from the source code.
在没有任何优化选项的情况下,编译器的目标是降低编译成本并使调试产生预期的结果。语句是独立的:如果您在语句之间使用断点停止程序,那么您可以为任何变量分配一个新值或将程序计数器更改为函数中的任何其他语句,并从源代码中准确地获得您期望的结果。
- 参数 -O1、-O2、-O3 中,随着数字变大,代码的优化程度也越高,不过这在某种意义上来说,也是以牺牲程序的可调试性为代价的。