代码优化是程序设计中经常遇到的问题,一般分为速度优化和容量优化,大部分编译器都能支持优化等级设置,像Keil还同时支持容量优化和速度优化两种选项,可以在编译器的Option中直接选择。但有时我们需要对单个函数进行操作,这个就要考虑下加入OT命令了。
工具/原料
Keil4
方法/步骤
1
在Keil中新建一个C51工程,同时加入一个main.c的源程序文件。
2
在main.c当中输入下面的代码,其中testFun用于代码优化效果比较:int testFun(int in){ int i = 0; int j = 0; int k = 0; int result = 0; for(i = 0; i < 100; i ++) { for(j = 0; j < 100; j ++) { for(k = 0; k < 100; k ++) { result = i * j * k * in; } } } return result;}void main(void){ testFun(123);}
3
点击菜单栏的编译按钮,在最下面会出现code=XXX,后面的XXX就是容量,这里code=125,编译的代码容量为125字节,这是默认的优化效果。
4
在testFun前加入#pragma OT(1),设置代码优化等级为1,那么函数testFun将以优化等级1进行重新优化。
5
再次点击菜单栏的编译按钮,编译完成后依然会在下面的Output窗口显示优化效果,容量变为code=190,即使用优化等级1,代码容量变大了,也就是优化等级1的容量较默认效果差。
6
将#pragma OT(1)改为#pragma OT(8),即将代码优化等级由1改为8,重新编译,可以看到代码容量变为了125字节,这个对于容量而言明显比1级优化的效果190字节好。
注意事项
默认OT命令是容量优化,如果要使用速度优化那么需要加SPEED后缀,即OT(1,SPEED)等
上一篇:大学生如何准备公务员考试