- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
标准C库函数strcpy的函数原形中能接纳的两个参数都为-火龙果软件
6.3.2传址调用 如果作如下修改: void swap(int *p1, int *p2) { int temp; temp = *p1; *p1 = *p2; *p2 = temp; } ………………………. void main() { int a = 10,b = 12; int *pointer1 = a; int *pointer2 = b; swap(pointer1, pointer2); printf(“a = %d”,a); printf(“b = %d”,b); } 此时,会发现结果a=12,b=10.交换成功,为什么,因为我们使用了传址调用。再传址调用中,函数接收到的是变量的内存地址,这样函数就可以改变位于指定内存单元的变量的值。另外注意的是,传址调用必须使用指针形式。 6.4 函数体的设计 函数的设计要注意以下几个原则: 建议:函数的规模尽量限制在200行以内。 说明:不包括注释和空格行。建议:一个函数仅完成一件功能。建议:为简单功能编写函数。 说明:虽然为仅用一两行就可完成的功能去编函数好象没有必要,但用函数可使功能明确化,增加程序可读性,亦可方便维护、测试。如果确实函数很简单,甚至可以考虑使用宏。 示例:如下语句的功能不很明显。value = ( a b ) ? a : b ; 改为如下就很清晰了。int max (int a, int b) { return ((a b) ? a : b); } value = max (a, b); 或改为如下。#define MAX (a, b) (((a) (b)) ? (a) : (b)) value = MAX (a, b); 建议:不要设计多用途面面俱到的函数。说明:多功能集于一身的函数,很可能使函数的理解、测试、维护等变得困难。 建议:函数的功能应该是可以预测的,也就是只要输入数据相同就应产生同样的输出。说明:带有内部“存储器”的函数的功能可能是不可预测的,因为它的输出可能取决于内部存储器(如某标记)的状态。这样的函数既不易于理解又不利于测试和维护。在C语言中,函数的static局部变量是函数的内部存储器,有可能使函数的功能不可预测,所以,除非特别需要,否则不建议使用static局部变量。 建议:避免设计多参数函数,不使用的参数从接口中去掉。说明:目的减少函数间接口的复杂度。 建议:检查函数所有参数输入的有效性。建议:在调用函数填写参数时,应尽量减少没有必要的默认数据类型转换或强制数据类型转换。 强烈建议:防止把没有关联的语句放到一个函数中。说明:防止函数或过程内出现随机内聚。随机内聚是指将没有关联或关联很弱的语句放到同一个函数或过程中。随机内聚给函数或过程的维护、测试及以后的升级等造成了不便,同时也使函数或过程的功能不明确。使用随机内聚函数,常常容易出现在一种应用场合需要改进此函数,而另一种应用场合又不允许这种改进,从而陷入困境。在编程时,经常遇到在不同函数中使用相同的代码,许多开发人员都愿把这些代码提出来,并构成一个新函数。若这些代码关联较大并且是完成一个功能的,那么这种构造是合理的,否则这种构造将产生随机内聚的函数。示例:如下函数就是一种随机内聚。void Init_Var( void ){Rect.length = 0;Rect.width = 0; /* 初始化矩形的长与宽 */Point.x = 10;Point.y = 10; /* 初始化“点”的坐标 */} 矩形的长、宽与点的坐标基本没有任何关系,故以上函数是随机内聚。 应如下分为两个函数:void Init_Rect( void ){Rect.length = 0;Rect.width = 0; /* 初始化矩形的长与宽 */} void Init_Point( void ){Point.x = 10;Point.y = 10; /* 初始化“点”的坐标 */} 建议:如果多段代码重复做同一件事情,那么在函数的划分上可能存在问题。说明:若此段代码各语句之间有实质性关联并且是完成同一件功能的,那么可考虑把此段代码构造成一个新的函数。 强烈建议:减少函数本身或函数间的递归调用。说明:递归调用特别是函数间的递归调用(如A-B-C-A),影响程序的可理解性;递归调用一般都占用较多的系统资源(如栈空间);递归调用对程序的测试有一定影响。故除非为某些算法或功能的实现方便,应减少没必要的递归调用。 建议:仔细分析模块的功能及性能需求,并进一步细分,同时若有必要画出有关数据流图,据此来进行模块的函数划分与组织。说明:函数的划分与组织是模块的实现过
您可能关注的文档
最近下载
- 初三语文下册《儒林外史》名著阅读知识梳理+中考真题演练.docx VIP
- 个人债务两清协议结清证明范本.docx VIP
- 大班幼儿参与幼儿园物质环境创设的现状及提升策略.docx VIP
- 2025广西盐业集团玉林盐业有限公司招聘笔试备考题库及一套参考答案详解.docx VIP
- 民用航空器系统/部件通用代码-中国民航维修网.PDF
- 浅谈地方媒体的发展与中老年人的关系.docx VIP
- 2025年部编版二年级道德与法治上册全册教案.pdf VIP
- 学习课件进路联锁与联锁表的编制方法表.ppt VIP
- 附着式升降脚手架施工方案范本.pdf VIP
- 小学四年级英语阅读理解30篇及小学四年级英语作文.doc VIP
文档评论(0)