c - C 中的返回类型

标签 c return

如果我们不指定返回类型,编译器会假定隐式返回类型为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/

相关文章:

c - 当进程的控制 shell 被杀死时优雅地终止进程

C 头文件给出错误 "VERTEX has no member ' p'"

c - 如何修复 "return 0/exit(0) not working properly inside for loop"?

c - 退出和返回有什么区别?

c++ - 调用 cuda 内核时的性能损失

c - 分解具有特定结构的原始字节字符串会给出错误的数据

c++ - 在不同空间使用同名变量

c - 如何在 C 函数中返回超过 1 个值?

java - 从数组返回值

java.util.LinkedList<ClassName> 无法转换为 ClassName