4.2.1 无返回值的函数
在 C 语言中,大多数函数会通过 return 语句返回一个值,而这个返回值的类型就是在函数名之前所标明的数据类型。读者应该注意到了,这句话里我们使用是“大多”,而不是“所有”,即 C 语言中的函数也可以没有返回值。若没有返回值,那函数名之前的数据类型,该怎么写呢?很简单,用关键字“void”就可以了。
在 C 语言中,void 表示空类型。这个空类型比较抽象,初学的时候比较难以理解。大家可以简单地把这种类型想象为是一个空的、虚无的数据类型。C 语言中的其他数据类型都可以定义出一个相应的变量,然后把这个变量作为容器,往里面存入数据。而 void 是表示空的数据类型,是无法存入数据的,所以它就无法定义出对应的变量,即在 C 语言中不能出现下面这样的变量定义语句:
void a; //错误!不能定义 void 类型的变量
我们可以把 void 放在函数名的前面,用来表示这个函数是没有返回值的。那无返回值的函数可以做些什么呢?我们先来看一个案例。
【 例 4-1 】编写一个程序,由用户按顺序输入两个整数,程序能够打印输出两个整数的和。
这个案例如此简单,相信难不倒大家,分分钟代码就可以写出来。有些人为了让程序的界面更加友好,于是在获取用户输入之前,给出一个漂亮的提示信息,具体代码如下:
程序运行结果如下:
~~~~~~~~~~~~~~~~~~~~~~~ Please enter an integer: ~~~~~~~~~~~~~~~~~~~~~~~ 5 ~~~~~~~~~~~~~~~~~~~~~~~ Please enter an integer: ~~~~~~~~~~~~~~~~~~~~~~~ 8 Result:13
程序的算法非常简单,我们就不去深究了。我们把焦点放到代码本身,通过观察,我们发现代码中两处用于提示用户输入信息的格式和内容是一致的,都是由 3 条 printf 函数调用语句构成,第 1 条和第 3 条都是为了打印一行波浪线,而中间一条是提示用户输入整数的信息。于是,我们就可以编写一个名为“showInfo”的无返回值函数,把这 3 条语句放入函数体中:
这样做有什么好处呢?第一,可以精简代码,即原先主函数中的 3 条 printf 函数调用语句,现在只需 1 条 showInfo 函数调用语句即可;第二,便于代码维护。若是突然感觉用波浪线没有短横线好看,只需要修改 showInfo 函数中的代码就可以了。若不使用自定义函数,就得到主函数中逐一修改,若是一个比较大的程序代码,可能需要修改的地方有几百上千处,那真是苦不堪言呀。使用自定义函数后的完整代码如下:
在 showInfo 函数中,将原先的波浪线修改为短横线。主函数中原先的 6 条 printf 函数调用语句,现在被 2 条 showInfo 函数调用语句代替。由于自定义函数位于函数调用语句之前,所以就不需要进行函数声明了。修改后的程序运行结果如下:
----------------------- Please enter an integer: ----------------------- 5 ----------------------- Please enter an integer: ----------------------- 8 Result:13
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论