在C语言中通过函数实现模块化程序设计思想,即用函数实现功能模块的定义,然后通过函数之间的调用来实现程序功能。因此函数有主调函数和被调函数。参数是主调函数和被调函数进行信息通信的接口,在函数的定义和说明语句中,我们将函数名后面括号中的参数称为形式参数,简称“形参”,在主调函数的调用语句中函数名后面括号中用的参数称为实际参数,简称“实参”。当函数被调用时实参要向形参传递数据,函数调用并完成一定的功能后也要向主调函数返回一些数据。[2]
return 表示把程序流程从被调函数转向主调函数并把表达式的值带回主调函数,实现函数值的返回,返回时可附带一个返回值,由return后面的参数指定。 return通常是必要的,因为函数调用的时候计算结果通常是通过返回值带出的。 如果函数执行不需要返回计算结果,也经常需要返回一个状态码来表示函数执行的顺利与否(-1和0就是最常用的状态码),主调函数可以通过返回值判断被调函数的执行情况。
如果你定义一个函数有返回类型,可以像下面这样调用:
(1) 在返回类型是char的函数中,return后应该是char类型的值;
(2) 在返回类型是int的函数中,如果是要停止函数的调用,最好应该为0;
(3) 在返回类型是结构类型的函数中,return后应该是结构的一个实例对象。
总之,函数定义为什么样的返回类型,该函数中return后就应该是相应类型的值。
如果实在不需要函数返回什么值,就需要用void声明其类型。
补充:如果你函数名前有返回类型定义,如int,double等就必须有返回值,而如果是void型,则可以不写return,但这时即使写了也无法返回数值。
例如:
1.非void型
2.void型
有时即使被调用函数是void类型 被调函数中的return也不是毫无意义的
举例:
#include "stdio.h"
运行结果为:屏幕上只输出一串数字1 而没有2。 但是如果去掉function函数中的return语句 就可以同时输出一串数字2。
这里的return其实还有个退出该程序的作用!也就是说在printf("111111");后面加了个return,就表示结束该函数,返回主函数中去了!
在C语言中,一般情况下函数的返回值是通过函数中的return语句来实现的,每调用一次return语句只能从函数中返回一个值。但在实际很多应用中,我们需要从函数中返回多个值,那我们可以用什么方法实现呢?此时我们可以用三种方法来实现。[3]