【发布时间】:2018-07-31 15:22:53
【问题描述】:
有什么区别:
#include <stdio.h>
int f(int x){
return x*x - 3;
}
int main(){
int x = 4;
printf("f(%d) = %d\n", x, f(x));
return 0;
}
和
#include <stdio.h>
int f(int x){
x*x - 3;
}
int main(){
int x = 4;
printf("f(%d) = %d\n", x, f(x));
return 0;
}
因为这两个编译没有错误(使用gcc)并且两个都在工作。 第一次返回真的很重要吗?
【问题讨论】:
-
如果你想返回一个值,是的,你必须显式返回它。如果它似乎没有它也能工作,那是个意外。
-
return不是函数。 -
MSVC 给出 两个 警告:“'-':运算符无效;预期运算符有副作用”和“'f':必须返回值”。所以提高你的警告级别(或者如果他们给出了他们认真对待)。
-
@SouravGhosh 返回可能是一个函数。你不知道。