嵌入式c代码规范
2016-06-05 19:23
211 查看
标准:
1,代码稳定,没有隐患。
2,执行效率高。
3,可读性高。
4,便于移植。
技巧:
1、尽量少用库函数,便于不同的mcu和编译器间的移植
2、选择合适的算法和数据结构
顺序查找法用较快的二分查找或乱序查找法代替,插入排序或冒泡排序法用快速排序、合并排序或根排序代替,适当使用链表
3、使用尽量小的数据类型
浮点型的参数(%f)则尽量不要使用,执行速度降低。
4、使用自加、自减指令(如a-=1及a+=1等)
5、减少运算的强度
(1)、求余运算。某数关于2的n次求余,可用位运算,如a%8可换为a&7
(2)、用移位实现乘除法运算。乘以或除以2n,都可以用移位的方法代替
6、循环
对于一些不需要循环变量参加运算的任务可以把它们放到循环外面,这里的任务包括表达式、函数的调用、指针运算、数组访问等。
用自减延时函数。
7、查表
在程序中一般不进行非常复杂的运算,如浮点数的乘除及开方等,以及一些复杂的数学模型的插补运算,对这些即消耗时间又消费资源的运算,应尽量使用查表的方式,并且将数据表置于程序存储区。如果直接生成所需的表比较困难,也尽量在启了,减少了程序执行过程中重复计算的工作量。
其他点击打开链接
1,代码稳定,没有隐患。
2,执行效率高。
3,可读性高。
4,便于移植。
技巧:
1、尽量少用库函数,便于不同的mcu和编译器间的移植
2、选择合适的算法和数据结构
顺序查找法用较快的二分查找或乱序查找法代替,插入排序或冒泡排序法用快速排序、合并排序或根排序代替,适当使用链表
3、使用尽量小的数据类型
浮点型的参数(%f)则尽量不要使用,执行速度降低。
4、使用自加、自减指令(如a-=1及a+=1等)
5、减少运算的强度
(1)、求余运算。某数关于2的n次求余,可用位运算,如a%8可换为a&7
(2)、用移位实现乘除法运算。乘以或除以2n,都可以用移位的方法代替
6、循环
对于一些不需要循环变量参加运算的任务可以把它们放到循环外面,这里的任务包括表达式、函数的调用、指针运算、数组访问等。
用自减延时函数。
7、查表
在程序中一般不进行非常复杂的运算,如浮点数的乘除及开方等,以及一些复杂的数学模型的插补运算,对这些即消耗时间又消费资源的运算,应尽量使用查表的方式,并且将数据表置于程序存储区。如果直接生成所需的表比较困难,也尽量在启了,减少了程序执行过程中重复计算的工作量。
其他点击打开链接
相关文章推荐
- 作业:C++作业7
- C语言的流函数
- C++实验7-最大公约数和最小公倍数
- JAVA基础-----------JVM内存分析之HelloWorld.java
- C++第七次实验--素数和回文
- PHP文件中调用Python脚本
- 实验:C++实验7 项目二
- JAVA实现水彩画滤镜
- C++第七次作业
- c++第7次作业
- 导入eclipse代码格式化模板
- Fatal error: Class 'GearmanClient' not found解决方法
- spring setter注入案例
- SSH三大框架整合的流程是怎样走的,spring在三大框架中式怎么的一个流程,hibernate是怎么的一个流程,struts2是怎么的一个流程的,
- 一些DuangDuang的C++题目(仅供娱乐)
- PHP内核探索之变量(1)变量的容器-Zval
- JDK的方法是最优的吗?
- 代码
- github常见操作和常见错误!错误提示:fatal: remote origin already exists.
- C++实验7--3特殊三位数