【问题标题】:Return meaning for C [duplicate]C的返回含义[重复]
【发布时间】:2022-08-03 17:00:55
【问题描述】:

我今天写了我的第一个 C 程序。它看起来像这样

#include <stdio.h>

int main()
{
    // my first program
  printf(\"Hello, World\\n\");
  return 0;
}

问题是,如果我运行同样的事情而不返回,它会给我同样的答案。 所以我的问题是,为什么我需要写 return ?不写可以吗

  • 您是专门询问main 函数的特殊情况还是一般情况下的return
  • C委员会在main()末尾做了return声明(仅在main() 末尾) 在 C99 中是可选的。在没有它的情况下,程序的行为就像存在return 0; 的语句一样,如果您的编译器设置为该语言的旧版本,则需要使用该语句。如果您的代码将由大家(如果它在 Internet 上公开),不要冒险,如果可能的话,通过包含 return 语句来支持旧版本的 C。

标签: c return


【解决方案1】:

来自 C 标准(5.1.2.2.3 程序终止)

1 如果主函数的返回类型是兼容的类型 int,从初始调用返回到主函数是等价的 使用 main 返回的值调用 exit 函数 函数作为它的参数;11)到达终止 main 的 } 函数返回值 0.如果返回类型不兼容 带int,返回宿主环境的终止状态为 未指定。

所以这个程序

#include <stdio.h>

int main()
{
    // my first program
  printf("Hello, World\n");
}

实际上等价于

#include <stdio.h>

int main()
{
    // my first program
  printf("Hello, World\n");
  return 0;
}

【讨论】:

    【解决方案2】:

    此处的返回值通过返回 0 用作进程退出代码。例如,如果您在返回后写了任何内容,则不会运行。默认情况下,在 main 结束时它将“返回 0”,这就是程序在没有它的情况下工作的原因。

    希望这可以帮助 :)

    【讨论】:

      猜你喜欢
      • 2014-04-15
      • 2016-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-21
      • 2012-08-01
      • 1970-01-01
      相关资源
      最近更新 更多