如果做嵌入式开发的,效率问题是关键,有必要优化一下C语言。这篇文章,是我整理和收藏的C语言干货,用到时可以快速查询使用。
求余运算
- c = a % b
- 如果 b 是 2的n次方,则可不用
%
, 用&
取代:c = a & (b-1) - 一般
%
运算比较慢,位运算&
就比较快
#include <stdio.h>
int main() {
int a = 11;
int b = 8;
int b;
//c = a % b;
c = a & (b-1);
printf("c = %d\n" , c); //输出:c = 3
return 0;
}
乘法/除法运算
- 乘法:c = a * b, 如果 b 是 2的n次方,则可不用
*
, 用<<
取代:c = a << n
#include <stdio.h>
int main() {
int a = 5;
int b = 8; // 2^3, n = 3
int c;
//c = a * 8;
c = a << 3;
printf("c = %d\n" , c); //输出: c = 40
return 0;
}
- 除法:c = a / b, 如果 b 是 2的n次方,则可不用
/
, 用>>
取代:c = a >> n
#include <stdio.h>
int main() {
int a = 11;
int b = 8; // 2^3, n = 3
int c;
//c = a / 8;
c = a >> 3;
printf("c = %d\n" , c); //输出: c = 1
return 0;
}
- 如果 b 不是2的n次法,也是可以拆分来去运算的
在这里插入代码片
持续更新 。。。
如果大家有什么好的干货,欢迎留言,我也会把它添加进来的,并@你的大名,谢谢大家
^_^