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

2019-03-24 18:49发布

我在程序优化的时候,有时候感觉程序代码太长,单片机有时候有问题,想优化一下,但是用指针代替这些参数,没感觉到程序有优化,请各位大神指点一下,指针该如何使用,以及什么时候使用最好! 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
6条回答
lr2131
2019-03-25 05:50
原帖由 ly471089608 于 2013-3-22 19:51 发表
我在程序优化的时候,有时候感觉程序代码太长,单片机有时候有问题,想优化一下,但是用指针代替这些参数,没感觉到程序有优化,请各位大神指点一下,指针该如何使用,以及什么时候使用最好!

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

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

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

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

指针什么时候用好?

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

具体什么时候用,怎么用。需要自己多看书、多学习、多实践、多验证、多总结。

一周热门 更多>