KEIL写代码时,你是开启编译器的优化写,还是关闭优化写?
有没有大佬知道,KEIL怎么禁止某个函数/某段代码 被编译器优化????? 写的代码莫名其妙开启优化后编译出错才麻烦 呵呵1991 发表于 2019-7-25 20:30
有没有大佬知道,KEIL怎么禁止某个函数/某段代码 被编译器优化?????
参考这个链接
keil mdk中如何确保某一段程序不被优化掉
我用的是 GCC,不过原理是一样的。开发过程中会开优化,不过用 -Og 或 -O1 这种不怎么激进的优化模式。这种优化模式下只有一些很明显的简单优化,不至于影响程序调试。正是产品则会用 -Os 或 -O3 这样的激进优化,而且会开 LTO。
GCC 的优化等级有这些:
* -O0 完全不优化。
* -Og 不影响调试的简单优化。
* -O1 简单优化。
* -O2 中度优化。
* -Os 在 -O2 的基础上针对代码体积做激进优化。
* -O3 在 -O2 的基础上针对代码速度做激进优化。
* -Ofast 在 -O3 的基础上针对速度做更激进的优化,代码体积可能会比 -O2 还要大。
* -flto 打开链接时优化(LTO)功能,允许优化算法跨函数。
优化这个问题要根据实际情况决定。比如我们在代码开发过程中,芯片空间小,代码量大的时候,就需要开启优化了。 问题是,你写代码的时候关优不优化鸟事啊?
问题标题起的让人,觉得,你语文水平不怎样。 如果说你懂汇编的话就开优化吧, 否则一旦编译器太过聪明你是查不出错的
页:
[1]