首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

return statement

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

句法

return expression ;

(1)

return ;

(2)

说明

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

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

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

代码语言:javascript
复制
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.

代码语言:javascript
复制
#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);
}

输出:

代码语言:javascript
复制
fa():   1
fb():   4
main(): 2

扫码关注腾讯云开发者

领取腾讯云代金券