5330|6

39

帖子

0

TA的资源

一粒金砂(高级)

楼主
 

C语言什么时候该使用指针才能达到以空间换时间的目的 [复制链接]

我在程序优化的时候,有时候感觉程序代码太长,单片机有时候有问题,想优化一下,但是用指针代替这些参数,没感觉到程序有优化,请各位大神指点一下,指针该如何使用,以及什么时候使用最好!
此帖出自51单片机论坛

最新回复

不用函数传参数,改成全局量,就是用空间换时间咯  详情 回复 发表于 2013-3-25 08:22

点评

不用函数传参数,改成全局量,就是用空间换时间咯  详情 回复 发表于 2013-3-25 08:22
优化,可以是编译器来做,也可以是程序员来做,但一般这两种方式是不冲突的。 你说代码长这个问题,应该是用编译器来优化,或者是采用高效稳定的算法来做吧。 用指针代替参数,我猜你是想说用指针代替结构体  详情 回复 发表于 2013-3-23 11:17
程序rom空间占用,ram占用,执行开销这几个指标不同,也不相关理解不? 你得先分析...程序太长的话用指针优化不了.函数方式可以减少内存占有但不会减少开销. 指针和优化没太大关系,你先看看优化开关开了没...其次  详情 回复 发表于 2013-3-23 10:38
点赞 关注
 

回复
举报

4008

帖子

0

TA的资源

版主

沙发
 

回复 楼主 ly471089608 的帖子

程序rom空间占用,ram占用,执行开销这几个指标不同,也不相关理解不?

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

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

[ 本帖最后由 huo_hu 于 2013-3-23 10:43 编辑 ]
此帖出自51单片机论坛
 
 
 

回复

436

帖子

5

TA的资源

五彩晶圆(初级)

板凳
 
原帖由 ly471089608 于 2013-3-22 19:51 发表
我在程序优化的时候,有时候感觉程序代码太长,单片机有时候有问题,想优化一下,但是用指针代替这些参数,没感觉到程序有优化,请各位大神指点一下,指针该如何使用,以及什么时候使用最好!

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

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

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

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

指针什么时候用好?

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

具体什么时候用,怎么用。需要自己多看书、多学习、多实践、多验证、多总结。
此帖出自51单片机论坛
 
 
 

回复

436

帖子

5

TA的资源

五彩晶圆(初级)

4
 
如果你真想好好学一下C/C++的话,指针是避不过去的部分,建议你看看这本书,讲C指针讲的很细致,内容难度也比较适中。
此帖出自51单片机论坛

点评

谢谢哈,也就是说,程序优化主要是在选择算法上,以及程序的结构上来。指针对于处理一些算法的用法上有一定得帮助,和一些函数的值得传递!是这样的吗?  详情 回复 发表于 2013-3-24 22:01
 
 
 

回复

39

帖子

0

TA的资源

一粒金砂(高级)

5
 

回复 4楼 lr2131 的帖子

谢谢哈,也就是说,程序优化主要是在选择算法上,以及程序的结构上来。指针对于处理一些算法的用法上有一定得帮助,和一些函数的值得传递!是这样的吗?
此帖出自51单片机论坛

点评

是你这样理解的。 C语言用于描述高效的算法,对于编译器来说比较容易实现和优化。  详情 回复 发表于 2013-3-24 22:33
 
 
 

回复

436

帖子

5

TA的资源

五彩晶圆(初级)

6
 
原帖由 ly471089608 于 2013-3-24 22:01 发表
谢谢哈,也就是说,程序优化主要是在选择算法上,以及程序的结构上来。指针对于处理一些算法的用法上有一定得帮助,和一些函数的值得传递!是这样的吗?

是你这样理解的。
C语言用于描述高效的算法,对于编译器来说比较容易实现和优化。
此帖出自51单片机论坛
 
 
 

回复

4008

帖子

0

TA的资源

版主

7
 

回复 楼主 ly471089608 的帖子

不用函数传参数,改成全局量,就是用空间换时间咯
此帖出自51单片机论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表