C
C 语法

return statement

返回语句

终止当前函数并将指定值返回给调用者函数。

句法

return expression ;(1)
return ;(2)

说明

1)计算表达式,终止当前函数并将表达式的结果返回给调用者(返回的值成为函数调用表达式的值)。只有在函数返回类型不是时才有效void

2)终止当前功能。只有在函数返回类型为void。时才有效。

如果表达式的类型与函数的返回类型不同,则通过赋值给类型为函数的返回类型的对象来转换其值,除了允许对象表示之间的重叠之外:

struct s { double i; } f(void // function returning struct 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; // 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(): 1 fb(): 4 main(): 2