标签:移位 效率 数据类型 浮点数 存储 字符串 mbr span 运算
data,
C的一些细节:
()&&()先计算前面若为0,后面不执行
a--先用后减 --a先减再用
char *p=“abc”将指针指向字符串首地址
int *p=(int *)0x123456789
数组初始化,所附数值个数小于数组长度时自动补0
函数参数为数组时 形参可以是数组或指针
static int fun ()静态(内部)函数,只供本文件其他函数调用 修饰变量则只能被本文件引用
extern int fun()可被其他文件函数引用
x=p->name 去除地址p开始的结构体中的name的值给x
运算符从左至右 如a>b>n 若a=3,b=2,c=1 则前式等于0
int(*p)【4】指向一维数组的指针 int*p【4】 数组指针
int(*fun)(int a,int b)函数指针 int*a(int x,int y)返回值为指针的函数
主要存放用户所做的选择以及系统的各种参数。用户可以通过修改INI文件,来改变应用程序和系统的很多配置
嵌入式c规范
标准:
1,代码稳定,没有隐患。
2,执行效率高。
3,可读性高。
4,便于移植。
技巧:
1、尽量少用库函数,便于不同的mcu和编译器间的移植
2、选择合适的算法和数据结构
用链表
3、使用尽量小的数据类型
执行速度降低。
4、使用自加、自减指令
5、减少运算的强度
(1)、求余运算。某数关于2的n次求余,可用位运算,如a%8可换为a&7
乘以或除以2n,都可以用移位的方法代替
、循环
对于一些不需要循环变量参加运算的任务可以把它们放到循环外面,这里的任务包括表达式、函数的调用、指针运算、数组访问等。
用自减延时函数。
7、查表
在程序中一般不进行非常复杂的运算,如浮点数的乘除及开方等,以及一些复杂的数学模型的插补运算,对这些即消耗时间又消费资源的运算,应尽量使用查表的方式,并且将数据表置于程序存储区。如果直接生成所需的表比较困难,也尽量在启了,减少了程序执行过程中重复计算的工作量。
其他点击打开链接
标签:移位 效率 数据类型 浮点数 存储 字符串 mbr span 运算
原文地址:http://www.cnblogs.com/otaganyuki/p/7101879.html