Bre*_*egg 20
使用-O0是我所知道的最接近的,但是,与其他回复不同,这并不意味着零优化.您可以计算不同gcc优化级别的启用优化次数,如下所示(这是gcc 4.8.2):
$ gcc -Q -O0 --help=optimizers | grep enabled | wc -l
52
$ gcc -Q -O1 --help=optimizers | grep enabled | wc -l
80
$ gcc -Q -O2 --help=optimizers | grep enabled | wc -l
110
$ gcc -Q -O3 --help=optimizers | grep enabled | wc -l
119
Run Code Online (Sandbox Code Playgroud)
所以在-O0,启用了52个优化.我想一个人可以逐个禁用它们,但我从未见过这样做.
请注意,gcc手册页说:
-O0 Reduce compilation time and make debugging produce the expected results. This is the default.
Run Code Online (Sandbox Code Playgroud)
它并不承诺零优化.
我不是一个gcc开发人员,但我猜他们会说-O0优化已经变得如此标准,以至于它们几乎不再被称为优化,而是"标准".如果这是真的,那有点令人困惑,因为gcc仍然在优化器列表中有它们.我也不太了解历史:或许对于先前版本-O0确实意味着零优化......
Mys*_*ial 16
gcc main.c
Run Code Online (Sandbox Code Playgroud)
要么
g++ main.cpp
Run Code Online (Sandbox Code Playgroud)
默认情况下,它不会进行任何优化.只有在您指定时-O1, -O2, -O3, etc...才会进行优化.
或者您可以使用-O0开关使其明确.