2019-03-24 18:49发布
原帖由 ly471089608 于 2013-3-22 19:51 发表 我在程序优化的时候,有时候感觉程序代码太长,单片机有时候有问题,想优化一下,但是用指针代替这些参数,没感觉到程序有优化,请各位大神指点一下,指针该如何使用,以及什么时候使用最好!
原帖由 ly471089608 于 2013-3-24 22:01 发表 谢谢哈,也就是说,程序优化主要是在选择算法上,以及程序的结构上来。指针对于处理一些算法的用法上有一定得帮助,和一些函数的值得传递!是这样的吗?
最多设置5个标签!
你得先分析...程序太长的话用指针优化不了.函数方式可以减少内存占有但不会减少开销.
指针和优化没太大关系,你先看看优化开关开了没...其次是程序的结构和关键的算法对开销影响大.
你可以打开仿真先看看最耗时的哪部分能不能优化...
[ 本帖最后由 huo_hu 于 2013-3-23 10:43 编辑 ]
优化,可以是编译器来做,也可以是程序员来做,但一般这两种方式是不冲突的。
你说代码长这个问题,应该是用编译器来优化,或者是采用高效稳定的算法来做吧。
用指针代替参数,我猜你是想说用指针代替结构体整体赋值的传参是吧。不过这个和上面那个优化是没有多大关系的。所以感觉你其实不是问的一个问题,
但表述形式又像是在说一个问题,似乎在误导别人哦。
传参的时候,如果参数很多,一个比较好的方式就是采用指针传参的方式,给出结构体的首地址,也就是它的指针,传参的时候就不会把结构体中的值依次复制到临时变量中,这样减少了复制的时间,也减少了开栈的时间(当然这个时间一般占的分量不大),当然就减少的了时间和空间的开销啊,特别是这个结构体很大的时候,效果很明显的。当然也会有一定的风险,那就是你在这个被调函数中修改了指针指向区的值,返回主调函数后,这个值就被修改了,不再是调用前的值了。
指针什么时候用好?
这个问题不是几句话说的清楚的,你知道的,C/C++这门语言的精华就是指针,用的好不得了,用不好也不得了。当然这两个不得了是不一样的,呵呵。
具体什么时候用,怎么用。需要自己多看书、多学习、多实践、多验证、多总结。
是你这样理解的。
C语言用于描述高效的算法,对于编译器来说比较容易实现和优化。
一周热门 更多>