打印
[资源共享]

C语言代码优化的小技巧

[复制链接]
1338|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
可以使用空间换时间。如果你能缓存经常用的数据而不是重新计算,这便能更快的访问。比如sine和cosine查找表,或者伪随机数。

尽量不在循环中使用++和–。例如:while(n–){},这有时难于优化。
减少全局变量的使用。
除非像声明为全局变量,使用static修饰变量为文件内访问。
尽可能使用一个字大小的变量(int、long等),使用它们(而不是char,short,double,位域等)机器可能运行的更快。
不使用递归。递归可能优雅而简单,但需要太多的函数调用。
不在循环中使用sqrt开平方函数,计算平方根非常消耗性能。
一维数组比多维数组更快。
编译器可以在一个文件中进行优化-避免将相关的函数拆分到不同的文件中,如果将它们放在一起,编译器可以更好的处理它们(例如可以使用inline)。
单精度函数比双精度更快。
浮点乘法运算比浮点除法运算更快-使用val*0.5而不是val/2.0。
加法操作比乘法快-使用val+val+val而不是val*3。
put()函数比printf()快,但不灵活。
使用#define宏取代常用的小函数。
二进制/未格式化的文件访问比格式化的文件访问更快,因为程序不需要在人为可读的ASCII和机器可读的二进制之间转化。如果你不需要阅读文件的内容,将它保存为二进制。
如果你的库支持mallopt()函数(用于控制malloc),尽量使用它。MAXFAST的设置,对于调用很多次malloc工作的函数由很大的性能提升。如果一个结构一秒钟内需要多次创建并销毁,试着设置mallopt选项。

使用特权

评论回复
沙发
tpgf| | 2024-3-1 15:45 | 只看该作者
为什么使用自己啊或者自减会比较难于优化呢

使用特权

评论回复
板凳
观海| | 2024-3-1 18:12 | 只看该作者
这里边很多都是通过实际运行得到的经验

使用特权

评论回复
地板
八层楼| | 2024-3-1 18:43 | 只看该作者
如果单单是依靠keil的优化 可行吗?

使用特权

评论回复
5
guanjiaer| | 2024-3-2 08:00 | 只看该作者
尽量不要使用全局变量和静态变量 以及常量

使用特权

评论回复
6
heimaojingzhang| | 2024-3-2 08:31 | 只看该作者
用空间换时间还是使用时间换空间  这个取决于产品的需求

使用特权

评论回复
7
keaibukelian| | 2024-3-2 09:02 | 只看该作者
感觉函数的递归调用的层数也不要太多

使用特权

评论回复
8
Jacquetry| | 2024-3-28 10:47 | 只看该作者
好像有个最大层数,函数调用不能超过

使用特权

评论回复
9
jf101| | 2024-3-28 15:46 | 只看该作者
guanjiaer 发表于 2024-3-2 08:00
尽量不要使用全局变量和静态变量 以及常量

那应该使用什么变量?

使用特权

评论回复
10
OKAKAKO| | 2024-4-24 14:26 | 只看该作者
经常用缓存的数据而不是重新计算,这便能更快的访问

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

200

主题

1391

帖子

2

粉丝