找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3057|回复: 0
收起左侧

ARM编程时数据类型的影响

[复制链接]
ID:72519 发表于 2015-1-23 21:01 | 显示全部楼层 |阅读模式
这是我今天下午看那本<<ARM嵌入式系统开发——软件设计与优化>>所学到的东西
。前面的关于ARM核的指令我就不讲了,只说下今天看的关于怎么提高C编程的效
率,我还只看了那基本数据类型的定义时所应该要注意的事项,前面我在一篇
<<ARM内部逻辑结构见解【原】>>已提到过内存的数据进入ARM核时要经过一个符
号扩展,也就是说一个不足32位的数据经过内核会被扩展成32位的,那么我们在
编程时就要注意咯,具体有以下几个方面:
1)我们如果在程序中定义了一个字符性的变量,那么编译器会对这个变量进行一
个判别,就是这个字符变量值超过了255没,这样势必会增加一条指令,而我们如
果用unsigned int,则可以省去那条多余的指令,
2)如果程序中有关于数组的操作时,我们尽量要用指针来操作,为什么呢,因为
编译器对数组它分两条指令来实现数组的地址偏移,而用指针,它其实就是一个
地址,偏移当然一条指令就够拉。
3)如果我们程序中有不同数据类型的数据直接运算时,这时我们要避免这种现象
的发生,因为它会另外生成一条语句来实现数据位数的扩展,所以我们可以在他
们计算完后,再统一用一条符号强制命令进行转换。
4)在进行乘除法运算时,如果变量能够用无符号型的,就不要用有符号的,因为
无符号的运算在进行除法和乗法运算时编译器会尽量通过右移来实现,这样处理
速度快,


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表