2012年4月18日星期三

结构,还是指向结构的指针

 
 

satan 通过 Google 阅读器发送给您的内容:

 
 

于 12-4-18 通过 averiany涂鸦馆 作者:averainy

假设你必须写一个与结构有关的函数.应该用结构指针作为参数,还是用结构作为参数和返回值呢?每种方法都有它的长处和不足.

把指针作为参数的方法的两个优点是:它既工作在较早的C实现上,也工作在较新的C实现上,而且执行起来很快,只需传递一个单个地址,缺点是缺少对数据的保护.被调用函数中的一些操作可能不经意的影响到原来结构中的数据.不过,ANSI C新增的const限定词解决了这个问题.

把结构作为参数传递的一个优点是函数处理的是原始数据的副本,这就比直接处理原始数据安全.编程风格也往往更清晰.

传递结构的两个主要缺点是早期的C实现可能不处理这种代码,并且这样做浪费时间和空间.把很大的结构传递给函数,但函数只使用一个或两个结构成员,这尤其浪费时间和空间.在这种情况下,传递指针或只将所需要的成员作为参数传递会更合理.

通常,程序员为了追求效率而使用结构指针作为函数的参数:当需要保护数据,防止意外改变数据是对指针使用const限定词.传递结构值是处理小型结构最常用的方法.

来源:C Primer Plus中文版


本文作者:averainy | 本文地址: 固定链接 | 我的腾讯微博|我的google+
本站文章除特殊标明者外均为原创,版权所有,如需转载,请以超链接形式注明作者和原始出处及本声明

相关日志

  • 无相关日志

 
 

可从此处完成的操作:

 
 

没有评论:

发表评论