重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
一般return语句用于函数返回值,当外界调用该函数需要知道函数执行情况的时候,就需要用返回值来告诉调用者。
创新互联专注为客户提供全方位的互联网综合服务,包含不限于成都网站设计、网站制作、李沧网络推广、成都微信小程序、李沧网络营销、李沧企业策划、李沧品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联为所有大学生创业者提供李沧建站搭建服务,24小时服务热线:13518219792,官方网址:www.cdcxhl.com
而当调用者不需要知道执行情况,只需要去执行该函数的时候,那就不需要返回值。
return的作用1:表示返回,这个程序可以结束了,可以不带参数。
如果你的成员运行到这里,你就不往后运行了,可以加一个return语句,就不会再执行了。
作用2:返回指定类型的值,在定义函数的时候不是有
int
af();int
这里是返回值。return
后面接的就是这个返回值,
这个函数执行后就可以给别的变量赋值了,他的值就是return
后面的值。
return 表示把程序流程从被调函数转向主调函数并把表达式的值带回主调函数,实现函数值的返回,返回时可附带一个返回值,由return后面的参数指定。
return通常是必要的,因为函数调用的时候计算结果通常是通过返回值带出的。 如果函数执行不需要返回计算结果,也需要返回一个状态码来表示函数执行的顺利与否(-1和0就是最常用的状态码),主调函数可以通过返回值判断被调函数的执行情况。
扩展资料:
C语言return返回值的说明:
1、没有返回值的函数为空类型,用void表示。
2、return 语句可以有多个,可以出现在函数体的任意位置,但是每次调用函数只能有一个 return 语句被执行,所以只有一个返回值。
3、函数一旦遇到 return 语句就立即返回,后面的所有语句都不会被执行到了。从这个角度看,return 语句还有强制结束函数执行的作用。
4、return语句是提前结束函数的唯一办法。
参考资料来源:百度百科-return(C语言语句)
①为什么需要return?
为了回答这个问题,
我打算用 模块思维 来解释。
②定义模块(形参模块)
定义函数:f(s)(a,b)
满足公式:s=a+b
函数名:f(s)
形参: a,b(公式中的 变量 )
函数返回值:return s
③调用模块(实参模块)
主函数:main()表示用户自己编写的部分
调用函数:f(s)(1,2)
满足公式:x=f(s)(1,2)
函数名:f(s)和定义函数一致,产生调用
实参 :1,2( 赋值 给公式的值)
求值:printf("%d\n",x),求x的值?
④值的传递过程
调用模块 中调用函数x=f(s)(1,2)
将实参1和2的值赋值给
定义模块 中的形参a和b
(实参到形参是单向传递,不可逆)
定义模块计算出s=a+b=1+2=3
定义模块 中的return s
将s的值赋值给
调用模块 中的函数f(s)(1,2)
即x=f(s)(1,2)=s=3
~
return s的作用
就是将定义模块中的s
赋值 给调用模块中的调用函数
如果没有return s
调用模块中的调用函数将永远没有定值
即所求x 无定值
这一点和数学不一样,
数学中
同一函数名的值是 通用 的,
C语言中
定义函数和调用函数的值是 隔离 的,
尽管函数名一样
如果不赋值,调用函数永远无定值。
事实上 无论是return ; 还是return X;
在汇编上都只有一条指令:ret(retn)
只不过对于return X; 会在 执行ret指令之前对eax寄存器赋值:
如果是return 0 ; 可能编译器会这样做:
xor eax,eax
ret
其他情况类似
然后从C语言角度讲
对于返回类型为void的函数
函数体内可以出现return;语句来表示结束本函数的执行
这个时候eax还是有值的,因为 函数返回类型是void,因此在调用该函数的地方不可能会去用该函数的返回值,也就意味着该返回值是毫无意义的
楼主想问的 单独的return;语句,对于这行代码,一般只用在返回类型为void的函数体内
若出现在非void返回类型的函数体内,那么返回值是隐含在寄存器eax中的
然后对于有返回值的函数来说
return后面是肯定需要跟一个值的
这个值是被送入寄存器eax带出来的~
我说再多 也许还是会有人不信(本人玩逆向的,这一切信不信那是你们的事,我只能把事实告诉你们,我也只能做到这样了)
下面直接上代码上图:
(微软任何C/C++编译器、VC/VS这些、都支持编译此代码,没有警告,没有错误)
注:主函数不主函数的return都是没有区别的
但是main函数很特别,特别在它有好多种写法,标准C真正的主函数返回类型是int
有2个参数,一个是命令行参数个数,一个是命令行参数
windows下面的主函数可以有三个参数,前两个参数跟标准C一样,第三个参数是环境变量
这些参数都是由mainCRTStartup函数传进来的,而mainCRTStartup再往上你还要研究的话那。。。。那。。。那。。。我只能告诉你这些参数都是要操作系统传进来的吧~~~
我们编程的时候,也许有些菜鸟会把main写成如下形式:void main()
其实这种写法在编译之后都是会被转化成标准写法的底楼说的 不带返回值系统默认返回0这完全是不靠谱的,因为事实当中返回值都是被寄存器eax带出去的,而对于main是必须要返回值的,菜鸟写了没返回值的main在编译之前就被编译器替换掉了,哪来的默认返回0的说法?何来默认?系统会把你写的main换成 标准main形式!标准main会在底下返回0
主函数return的值只有你在其他进程中创建子进程,子进程的返回状态被父进程接收的值就是main的返回值,所以,在你写的程序不需要被其他进程创建的话,main的返回值是无关紧要的
这条语句一般情况下加在主函数的最后,表示程序运行正常,则返回一个整数值0。其实在windows下一般没有这个要求,除非是一个程序调用另外一个程序,或者在unix和linux下系统会要求一个程序返回一个整数值。
return 可以分两种情况:
1.有返回值的函数
int function1(){
return 1; --必须要return 才能有返回值。
};
2.没有返回值的函数
void function2(){
return; --写了return会直接跳出函数,不会继续执行下面的语句。
int a=1+1;
};
扩展资料:
被调用函数是void类型表达式最后一句写return是没有意义的,如果在表达式的最上面写return就会直接跳出函数不会执行下面的语句,。
2.被调用函数不是void类型,你肯定需要函数的返回值,比如你写一个你调用比大小的函数你肯定需要知道谁大谁小,记住函数一旦遇到 return 语句就立即返回,后面的所有语句都不会被执行到了。
参考资料
百度百科-return(C语言语句)