C语言什么时候该使用指针才能达到以空间换时间的目的

2019-03-24 18:49发布

我在程序优化的时候,有时候感觉程序代码太长,单片机有时候有问题,想优化一下,但是用指针代替这些参数,没感觉到程序有优化,请各位大神指点一下,指针该如何使用,以及什么时候使用最好! 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
Li_Lei
1楼-- · 2019-03-25 01:42
程序rom空间占用,ram占用,执行开销这几个指标不同,也不相关理解不?

你得先分析...程序太长的话用指针优化不了.函数方式可以减少内存占有但不会减少开销.

指针和优化没太大关系,你先看看优化开关开了没...其次是程序的结构和关键的算法对开销影响大.
你可以打开仿真先看看最耗时的哪部分能不能优化...

[ 本帖最后由 huo_hu 于 2013-3-23 10:43 编辑 ]
lr2131
2楼-- · 2019-03-25 05:50
原帖由 ly471089608 于 2013-3-22 19:51 发表
我在程序优化的时候,有时候感觉程序代码太长,单片机有时候有问题,想优化一下,但是用指针代替这些参数,没感觉到程序有优化,请各位大神指点一下,指针该如何使用,以及什么时候使用最好!

优化,可以是编译器来做,也可以是程序员来做,但一般这两种方式是不冲突的。

你说代码长这个问题,应该是用编译器来优化,或者是采用高效稳定的算法来做吧。

用指针代替参数,我猜你是想说用指针代替结构体整体赋值的传参是吧。不过这个和上面那个优化是没有多大关系的。所以感觉你其实不是问的一个问题,
但表述形式又像是在说一个问题,似乎在误导别人哦。

传参的时候,如果参数很多,一个比较好的方式就是采用指针传参的方式,给出结构体的首地址,也就是它的指针,传参的时候就不会把结构体中的值依次复制到临时变量中,这样减少了复制的时间,也减少了开栈的时间(当然这个时间一般占的分量不大),当然就减少的了时间和空间的开销啊,特别是这个结构体很大的时候,效果很明显的。当然也会有一定的风险,那就是你在这个被调函数中修改了指针指向区的值,返回主调函数后,这个值就被修改了,不再是调用前的值了。

指针什么时候用好?

这个问题不是几句话说的清楚的,你知道的,C/C++这门语言的精华就是指针,用的好不得了,用不好也不得了。当然这两个不得了是不一样的,呵呵。

具体什么时候用,怎么用。需要自己多看书、多学习、多实践、多验证、多总结。
lr2131
3楼-- · 2019-03-25 09:35
 精彩回答 2  元偷偷看……
ly471089608
4楼-- · 2019-03-25 15:19
谢谢哈,也就是说,程序优化主要是在选择算法上,以及程序的结构上来。指针对于处理一些算法的用法上有一定得帮助,和一些函数的值得传递!是这样的吗?
lr2131
5楼-- · 2019-03-25 19:08
原帖由 ly471089608 于 2013-3-24 22:01 发表
谢谢哈,也就是说,程序优化主要是在选择算法上,以及程序的结构上来。指针对于处理一些算法的用法上有一定得帮助,和一些函数的值得传递!是这样的吗?

是你这样理解的。
C语言用于描述高效的算法,对于编译器来说比较容易实现和优化。
Li_Lei
6楼-- · 2019-03-25 20:58
不用函数传参数,改成全局量,就是用空间换时间咯

一周热门 更多>