对于有些单片机,自身容量是很有限的,有的仅仅只有8k、16k的flash等,但是对32位mcu来说,这点空间实在有点小。不像计算机一样内存和rom都很多,因此有时候就需要进行代码优化。
大家都知道,单片机最开始对整数运算很在行,对浮点数的运算也是转换为整数来进行,计算机是离散的,除了带dsp内核的mcu,有dsp模块的M4内核的arm来说,浮点数计算轻而易举。
因此在单片机中,可以遵循以下几点:
1、尽量不要浮点数,实在不行,用float类型,在数据后面添加后缀f,比如0.0324f,这样可以避免编译器转换为double类型。
2、乘法和除法,尽量用乘法。
3、和2的倍数的乘除法,可以用移位操作,但有可能会降低精度。比如乘以2,可以<<1,除以4,可以>>2等等
4、在keil中可以进行代码优化,有网友称,O2<O1<O3<O0,iar中选择最高的优化方案。
5、进行空间优化、时间优化,或者两者折中等。
相关文章
- 02-11c语言中volatile的关键字作用
- 02-11基于Doxygen_C语言代码文档一键生成的记录与规范(嵌入式适用)
- 02-11c语言实现顺序表的基本操作
- 02-11c语言新手的无奈,几个新手容易犯的错误
- 02-11C语言数据结构静态栈——计算器的实现
- 02-11自学C语言的第一天
- 02-11堆的创建、优先队列、topk、堆排序C语言实现
- 02-11C语言判断文件指针是否结尾的问题
- 02-11C语言的输入
- 02-11C语言:二十三 不用库函数/局部or全局变量写测字符串长度的函数