APP下载

C语言中函数编写方法的分析与探讨

2014-04-29王秀娟赵山林

计算机时代 2014年2期
关键词:调用函数

王秀娟 赵山林

摘 要: 函数是C语言学习的难点和重点,通过分析函数的结构,将函数编写中难以确定的问题进行分解、细化。按照返回值的个数将函数分为:无返回值函数、单反回值函数、多返回值函数三种类型。对这三种类型函数的设计方法分别举例分析和说明,详细阐述了函数编写的具体过程。

关键词: 函数; 形式参数; 指针变量; 调用

中图分类号:TP399 文献标志码:A 文章编号:1006-8228(2014)02-49-02

0 引言

C语言是一种结构化的程序设计语言,通过函数来实现模块化的程序设计[1]。程序是由若干个函数来组成的,因此函数在C语言程序设计中具有举足轻重的地位。很多学生在编写函数时,很迷茫,不知从何入手,经常出现这种情况:无论一个程序多么复杂,都将所有的功能全部放在主函数中,这样会造成很多的问题,例如:程序编写困难、程序结构不清晰、功能难于扩充、调试困难等。为了解决这些问题,本文重点分析函数的结构,并总结出不同类型函数的编写方法。

1 函数结构

函数由两大部分组成:函数头和函数体。第一行为函数头部分,花括号括起来的为函数体部分。其中,函数类型指的是函数返回值的类型,若函数无返回值则函数类型为“void”。函数名由编程者来命名,通常应该做到见名知意[3]。函数名后面小括号中的是形式参数,其中的每一个参数应该分别定义数据类型。函数体部分和主函数的函数体部分一样,由数据描述和算法实现两部分组成。函数体用顺序、选择、循环三种结构的设计方法编写即可。从函数的结构可以看出,只要设计出函数头,整个函数的设计也就迎刃而解。

2 函数设计过程分析

第一步:设计函数头。①分析哪些量是函数的已知量,数据类型是什么,将已知数据作为函数的形参;②哪些是未知量,即函数需要得到的结果,若未知数据只有一个,可确定其数据类型,即为函数类型。

第二步:编写函数体[4]。

3 无返回值函数的编写

无返回值函数的功能通常是为了调用函数实现特定的功能,这种函数的类型应定义为“void”,函数体中不需要使用“return”语句[5-6]。

5 多返回值函数的编写

C语言中通过return语句只能返回一个值,如果在调用函数过程中需要返回多个值给主调函数通常有两种方法:①设定n个指针变量,利用间接访问方式访问主调中的变量来实现;②设定1个指针变量,调用时使其指向主调中的数组,利用主调中的数组的各个元素表示n个返回值[9]。

5.1 通过多个指针变量返回多值

被调函数原型声明:

void fun(带类型说明的形参表列,类型 *p1,类型 *p2,类型 *p3,……类型 *pn);

这种方法是在主调函数中定义多个变量来表示多个返回值,在被调用函数中用指针指向主调函数中表示未知的变量,通过间接访问的方式修改主调函数中变量的值,从而获得多个返回值[10-11]。分析时,已知量仍作为函数的形参,未知量也作为函数的形参,但要定义为指针类型。函数的结果不再通过“return”语句返回,所以函数类型定义为“void”。

编写函数,求两个数的最大公约数和最小公倍数。

6 结束语

函数是C语言程序的基本组成单位,因此掌握函数的编写至关重要。从本文的分析中不难看出,对于函数的编写,函数头的确定是首要内容,一旦函数头确定了,则该函数的已知(即普通形参)和未知(即函数返回结果)便明确了。若未知量是一个,则把未知量的类型定义为函数类型,未知量是多个时,通常使用指针指向需返回的多个值[14]。另外需要注意的是,我们分析的已知量,不是通过“scanf”函数从键盘读取数据,而是在调用函数的过程中将实参的值传递给对应的形参,因此,实参和形参的个数应相等,类型应一致,按顺序一一对应[15]。笔者在多年从事C语言程序教学的过程中发现,只要学生掌握了函数编写的正确方法和技巧,就可以事半功倍,使函数的编写不再成为一个难题。

参考文献:

[1] 赵山林,高媛.C程序设计[M].人民邮电出版社,2012.

[2] 谭浩强.C程序设计(第三版)[M].清华大学出版社,2005.

[3] 吉顺如.C语言程序设计教程[M].机械工业出版社,2010.

[4] 何钦铭,颜晖.C语言程序设计[M].高等教育出版社,2008.

[5] 涛伟,杨秀金.C++函数的参数传递和返回值问题的教学研讨[J].吉林大学学报(信息科学版),2005.23:70-74

[6] 赵家刚,李俊蔌.C语言程序设计[M].西安交通大学出版社,20l0.

[7] 尹宝林.C程序设计思想与方法[M].机械工业出版社,2009.

[8] 王立柱.C语言程序设计[M].机械工业出版社,2011.

[9] 贾伯琪,顾卫兵,苏仕华,张四海,何克东.计算机程序设计[M].机械工业出版社,2011.

[10] Harry H.Cheng著,何钦铭,王兆青,陆汉权译.C For Engineers And Scientists[M].高等教育出版社,2011.

[11] 龚沛曾,杨志强.C/C++程序设计教材[M].高等教育出版社,2004.

[12] 朱小菲,刘玉喜.C语言程序设计教程[M].清华大学出版社,2005.

[13] 夏涛.C语言程序设计[M].北京邮电大学出版社,2007.

[14] 苏小红,王宇颖,孙志岗.C语言程序设计[M].高等教育出版社,2008.

[15] 王金鹏,肖进杰.C程序设计进阶与实例解析[M].清华大学出版社,2011.

猜你喜欢

调用函数
第3讲 “函数”复习精讲
二次函数
第3讲 “函数”复习精讲
二次函数
函数备考精讲
核电项目物项调用管理的应用研究
第3讲“函数”复习精讲
核电厂建设阶段物项调用管理探讨
LabWindows/CVI下基于ActiveX技术的Excel调用
基于系统调用的恶意软件检测技术研究