博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
return的各种用法
阅读量:3949 次
发布时间:2019-05-24

本文共 1142 字,大约阅读时间需要 3 分钟。

今天在开发STM32的时候遇到了关于 return的问题,想想我也算学过C语言,但是对 return的用法却只懂点皮毛,所以在这里总结一下 return的具体几种用法和作用。

百度词条对 return的介绍如下:

return 表示把程序流程从被调函数转向主调函数并把表达式的值带回主调函数,实现函数值的返回,返回时可附带一个返回值,由return后面的参数指定。 return通常是必要的,因为函数调用的时候计算结果通常是通过返回值带出的。 如果函数执行不需要返回计算结果,也经常需要返回一个状态码来表示函数执行的顺利与否(-1和0就是最常用的状态码),主调函数可以通过返回值判断被调函数的执行情况。

这是较为官方的解释,按我初学的理解,return的任务就是在一个函数的最后返回对应的参数,然后在外层函数中对这个参数做进一步处理。然鹅,我对return的这种理解就像是外国人认为筷子只能夹菜,是片面肤浅的,筷子还可以用来喝汤、开啤酒盖、插着吃玉米…所以说return也有很多种用法,本质上return就是返回函数,只是我们在应用的过程中赋予了return更加丰富的作用罢了。

一.为调用的函数返回参数值

此类应用最为普遍,通常是在一个具有返回值的函数中,返回一个参数值,这个返回的参数可以是一个数、表达式。通常情况下,返回值是一个值,如果想返回多个值可以参考以下三点:

1.设置全局变量,全局变量是定义在函数外的一个变量,其不属于任何一个函数,所以,虽然在调用函数中return返回一个值,但可以将其余的返回值赋值给全局变量,这样就做到了返回多个值的效果
2.使用数组名或指针作为函数形参,返回的是一个地址,主函数可以根据这个地址找到多个,要返回的数据。
3.使用结构体作为函数形参,结构体中可以包含多种形式的变量,以结构体作为形参相当于将所有返回值打包在一起,一次返回。

二.提前结束函数

由于return具有把程序流程从被调函数转向主调函数的作用,所以时候也会用来终止函数的调用,也就是说return是提前结束函数的唯一方法。因为函数一遇到return就立即返回,return后面的程序都不再执行,所以一个函数中可以有多个return,但只会执行一个。return后面可以跟一个参数作为返回值,也可以不跟参数,仅仅代表结束此函数

三.返回一个函数

如果return后面跟的是一个函数的话,就意味着,跳出此调用函数,并且跳出后执行return后的函数,然后继续在主函数中执行程序。有时利用return返回一个操作,比如在程序调试中出错后,需要return跳出错误函数并向串口打印出错误的原因,这个时候return后面的函数就用来向串口打印错误原因的。(个人理解)

文章参考:

转载地址:http://uowzi.baihongyu.com/

你可能感兴趣的文章
Mac启动tomcat
查看>>
Mac IntelliJ IDEA 快捷键大全
查看>>
报错: java.sql.SQLException: The server time zone value '�й�' is unrecognized or represents more ...
查看>>
sql与java之间数据类型的对应
查看>>
使用xshell对服务器上的sql文件进行操作(mysql导入Linux)
查看>>
WinSCP怎么连接linux服务器;
查看>>
Java将本地图片转为二进制流,将二进制流转化为图片
查看>>
Mybatis查询Mysql中的时间datetime类型,相差8小时的解决方案
查看>>
Spirngboot 后台操作一切正常并无报错,但是前端出现404错误
查看>>
java错误:java.lang.String can not be cast to java.math.BigDecimal
查看>>
Linux导出数据库文件mysql
查看>>
xshell查看程序代码后台的动态日志
查看>>
Java 根据经纬度计算实际距离
查看>>
mysql 分页limit 语句
查看>>
微信小程序——登陆凭证校验报错{"errcode":40029,"errmsg":"invalid code, hints: [ req_id: weh8ka0297hc58 ]"}
查看>>
解决:MySQL更新一个字段时,表中的datetime类型字段全部变成了当前时间
查看>>
Java(百度地图API)使用坐标的经纬度得到具体的城市信息
查看>>
解决org.springframework.web.multipart.MaxUploadSizeExceededException报错问题
查看>>
memset()函数的使用详解
查看>>
微信小程序——Java后台获取access_token
查看>>