注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题
wangmxe的个人空间 https://home.eeworld.com.cn/space-uid-91642.html [收藏] [复制] [分享] [RSS]
日志

ARM C程序优化总结三

已有 1233 次阅读2009-8-22 12:20 |

五、避免指针别名

1.       不要依赖编译器来消除包含存储器访问的公共子表达式,而应建立一个新的局部变量来保存这个表达式的值,这样可以保证只对这个表达式求一次值。

2.       避免使用局部变量的地址,否则对这个变量的访问效率会比较低。如果必须这样做,那么可以在使用之前先把它的值复制到另外一个局部变量。

六、结构体安排

1.       结构体元素要按照元素的大小来排列,以最小的元素放在开始,最大的元素安排在最后。

2.       避免使用很大的结构体,可以使用层次化的小结构体来代替。

3.       为了提高可移植性,人工对API的结构体增加填充位,这样结构体的安排将不会依赖于编译器。

4.       API的结构体中要谨慎使用枚举(enum)类型。一个枚举类型的大小是编译器相关的。

七、位域

1.       应避免使用位域,而使用#define或者enum来定义屏蔽位。

2.       使用整型逻辑运算ANDOR、“异或”操作和屏蔽对位域进行测试、取反、和设置操作。这些操作编译效率高,还可以同时对多个位域进行测试、取反和设置。

 

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

热门文章