新闻中心

EEPW首页>EDA/PCB>设计应用> 针对嵌入式SoC应用的C编程优化

针对嵌入式SoC应用的C编程优化

作者: 时间:2012-05-02 来源:网络 收藏

13. 编写简单易懂的代码

编译器擅长创建复杂的优化,比如函数嵌入和在适当的时候循环体展开。但编译器不擅长简化代码,他们不会合并循环或者不用函数嵌入。在源程序中为了支持某些处理器架构进行的手工的循环体展开会降低程序的可移植性,因为这阻止了编译器自动为其他的处理器架构进行正确的循环体展开和函数嵌入。

14. 避免编写参数数量可变的函数

如果一定要这么做,使用ANSI标准方法:stdarg.h.。使用数据表替代if-then-else或者switch分支处理。比如考虑下面代码:

typedef enum { BLUE, GREEN, RED, NCOLORS } COLOR;

替代

switch (c) {

case CASE0: x = 5; break;

case CASE1: x = 10; break;

case CASE2: x = 1; break;

}

使用

static int Mapping[NCOLORS] = { 5, 10, 1 };

...

x = Mapping[c];

15. 依靠libc函数库(比如:strcpy、strlen、strcmp、bcopy、bzero、memset和memcpy)。这些函数是经过精心优化的。

表1:一些XCC C/C++编译器优化开关
15.jpg

本文小结

编译器设计者已经开发了很多复杂的优化功能以使最新的处理器获得最大的性能,并且他们还在继续开发更智能的优化算法。应用程序开发人员可以通过使用恰当的编程规则来尽可能多地利用编译器的这些优化功能。

linux操作系统文章专题:linux操作系统详解(linux不再难懂)


评论


相关推荐

技术专区

关闭