©
This document uses PHP Chinese website manual Release
终止当前函数并将指定值返回给调用者函数。
return expression ; | (1) | |
---|---|---|
return ; | (2) |
1)计算表达式,终止当前函数并将表达式的结果返回给调用者(返回的值成为函数调用表达式的值)。只有在函数返回类型不是时才有效void
。
2)终止当前功能。只有在函数返回类型为void
。时才有效。
如果表达式的类型与函数的返回类型不同,则通过赋值给类型为函数的返回类型的对象来转换其值,除了允许对象表示之间的重叠之外:
struct s { double i; } f(void); // function returning struct sunion { 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; // undefined behavior (overlap in assignment) g.u2.f3 = f(); // well-defined}
如果返回类型是实际浮动类型,则结果可能会以比新类型暗示的更大的范围和精度表示。
到达以外的功能的端部main
是相当于return;
。到达主要功能的结束等同于return 0;
。到达任何其他返回值函数的末尾都是未定义的行为,但前提是函数的结果在表达式中使用。
return
在无返回函数中执行语句是未定义的行为。
return
.
#include <stdio.h> void fa(int i){ if (i == 2) return; printf("fa(): %d\n", i);} // implied return; int fb(int i){ if (i > 4) return 4; printf("fb(): %d\n", i); return 2;} int main(void){ fa(2); fa(1); int i = fb(5); // the return value 4 used to initializes i i = fb(i); // the return value 2 used as rhs of assignment printf("main(): %d\n", i);}
输出:
fa(): 1fb(): 4main(): 2