Keil优化及如何设置某段代码不优化

如题所述

Keil默认会对代码进行优化的

一般情况缺省编译优化设置被设定为8级优化,实际最高可设定为9级优化。
1、Dead code elimination
2、Data overlaying
3、Peephole optimization
4、Register variables
5、Common subexpression elimination
6、Loop rotation
7、Extended Index Access Optimizing
8、Reuse Common Entry Code
9、Common Block Subroutines
如何设定不优化或改变某个文件的优化设置
1、针对某个文件
(1) 右键->Option for File XXXX

(2) 切换到【C51】选项卡
default表示与工程设置一致

2、针对某段代码(局部优化)
#pragma OPTIMIZE(x) x就是你希望的优化级别
举例如下:
#pragma OPTIMIZE(6)
void FunA()
{
}
......
......
#pragma OPTIMIZE(9)
void FunB()
{
}
上面的意思就是说,在void FunA()到void FunB()之前的所有函数,包括FunA在内,都采用6级的优化,而从FunB开始直到之后,只要没碰上#pragma OPTIMIZE,都采用9级优化了。
OPTIMIZE还可以多一个参数,就是speed和size,
用法: #pragma OPTIMIZE(9,speed)或#pragma OPTIMIZE(5,size)
对应的就是9级优化,以速度为主,或5级优化,以空间最小为主。
温馨提示:内容为网友见解,仅供参考
无其他回答

Keil优化及如何设置某段代码不优化
9、Common Block Subroutines 如何设定不优化或改变某个文件的优化设置 1、针对某个文件 (1) 右键->Option for File XXXX (2) 切换到【C51】选项卡 default表示与工程设置一致 2、针对某段代码(局部优化)pragma OPTIMIZE(x) x就是你希望的优化级别 举例如下:pragma OPTIMIZE(6)void FunA(){...

如何阻止keil4对某一句或某几句代码进行优化?
对于51工具链,可以通过#pragma optimize(0)来实现。

如何阻止keil4对某一句或某几句代码进行优化?
回答:那要看是什么工具链了。 对于51工具链,可以通过#pragma optimize(0)来实现。

keil 怎么不优化
Target Options >> C\/C++选项卡 ,efoCTX

怎么防止keil编译器自作聪明优化掉有用语句
在51环境下:options for target -> C51 -> emphasis选择default (不要选择size、speed)优化标准:选择 0:constant folding 即可保留所有垃圾语句,

Keil或是伟福用C编写的程序,在编译时显示无错,但是仿真的时候发现有些...
c语言的编译器有优化选项,keil好象有九级,可设置,你那段代码可能被优化了,例如代码有重复,或者代码在程序运行过程中不可能被执行 你可以认真审查你的代码,或者把优化等级设置为0,如图

如何保证全部变量不被优化 keil
你怕被优化,可以将变量定义为volatile类型。或者将优先级等级设置为最低,这样就不会被优化了。Keil的使用方法(汇总)http:\/\/www.cnblogs.com\/strongerHuang\/p\/5839141.html

怎么优化 keil c51 代码
怎么优化keil C51代码,这个C51单片机编程怎么优化,很有多种方法如下:第一代码编程效率: C51单片机编程效率,有代码效率,代码的书写风格,通过书写风格来提高编程效率。第二代码编程效率: C语言编程效率没有汇编编程代码效率高,汇编是单片机底层操作,直接操作寄存器别C语言编程代码要高30%,但是汇编...

keil c51优化等级介绍
一般用优化等级8,其它的别用,容易出事。编译完之后多留意data,xdata,看有没超出芯片的最大值,特别是data,不能超过128,甚至太接近128有时也会出问题。如果data 需要使用到256,则另外的128用idata定义

你好,想请问一下,在KEIL中JTAG调试时,有几步程序直接跳过没执行,你是怎...
看你的编译器优化级别是不是0,如果不是的话,编译器会执行优化,它会自动判断你那些代码可以合并,这样进行合并优化,判断你的那些代码永远不会执行,这样会将这些代码直接优化掉 你所说的情况很可能是编译器把代码给优化掉了,你可以尝试把编译器优化级别设置成0 ...

相似回答