如果我们不指定返回类型,编译器会假定隐式返回类型为int
。我尝试返回一个 char
并且它在 GCC 中工作得很好。我只是这样定义的
#include <stdio.h>
char fun(char ch)
{
return ch;
}
int main()
{
char ch = fun('A');
printf("ch : %c\n",ch);
}
但是,在下面的程序中没有指定返回类型,但是
#include <stdio.h>
char fun(char ch)
{
}
int main()
{
char ch = fun('A');
printf("ch : %c\n",ch);
}
并且它工作正常意味着返回一个char
。为什么?
为什么默认不返回int
返回类型?
最佳答案
实际上,在这两种情况下,您都指定了返回类型。在第二种情况下,你的函数是:
char fun(char ch)
{
}
指定 char
作为返回类型。在第二种情况下,您没有指定函数的返回值(这将导致未定义的行为)。
注意:一般来说,函数声明具有以下结构:
return_type function_name( parameter list ) {
body of the function
}
因此,您已明确声明函数的返回类型为 char
。请参阅this link了解更多信息。
关于c - C 中的返回类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39034450/