return statement
终止当前函数并将指定值返回给调用函数。
目录 |
语法
attr-spec-seq
(可选)
return
expression
;
|
(1) | ||||||||
attr-spec-seq
(可选)
return
;
|
(2) | ||||||||
| expression | - | 用于初始化函数返回值的表达式 |
| attr-spec-seq | - |
(C23)
可选的
属性
列表,应用于
return
语句
|
说明
如果 表达式 的类型与函数返回类型不同,其值将被 转换 ,转换方式如同赋值给一个类型为函数返回类型的对象,但允许对象表示发生重叠:
struct s { double i; } f(void); // 返回结构体s的函数 union { struct { int f1; struct s f2; } u1; struct { struct s f3; int f4; } u2; } g; struct s f(void) { return g.u1.f2; } int main(void) { // g.u2.f3 = g.u1.f2; // 未定义行为(赋值中存在重叠) g.u2.f3 = f(); // 定义明确 }
如果返回类型是实浮点类型,结果可能以 更大的范围和精度 表示,这超出了新类型所隐含的范围和精度。
到达返回
void
的函数末尾等价于执行
return
;
。对于其他有返回值的函数,若在表达式中使用函数返回值时到达函数末尾,则属于未定义行为(允许直接丢弃此类返回值)。关于
main
函数的情况,请参阅
main
函数
。
|
在
无返回函数
中执行
|
(C11起) |
关键词
示例
|
本节内容尚不完整
原因:待完善 |
输出:
fa(): 1 fb(): 4 main(): 2
参考文献
- C17 标准 (ISO/IEC 9899:2018):
-
- 6.8.6.4 return 语句 (p: 111-112)
- C11 标准 (ISO/IEC 9899:2011):
-
- 6.8.6.4 return 语句 (p: 154)
- C99标准(ISO/IEC 9899:1999):
-
- 6.8.6.4 return语句(页码:139)
- C89/C90 标准 (ISO/IEC 9899:1990):
-
- 3.6.6.4 return 语句
参见
|
C++ 文档
关于
return
语句
|