【问题标题】:Use of return(0) [duplicate]使用 return(0) [重复]
【发布时间】:2019-08-18 09:04:33
【问题描述】:

return(0) 在 C 语言中有什么用?我编写了不使用它就可以正常工作的程序。请用简单的方式向我解释一下,因为我是 C 的初学者。如果答案很复杂,可能会让我更加困惑......

#include <stdio.h>
#include <stdlib.h>

int main()
{
    float km, meter, feet, inch, cm;
    printf("Enter the distance(must be in km: \n");
    scanf("%f", &km);
    cm = 100000*km;
    inch = 39370.1*km;
    meter = 1000*km;
    printf("The distance between the cities in cm is %f \n", cm);
    printf("The distance between the cities in inches is %f \n", inch);
    printf("The distance between the cities in meters is %f \n", meter);
}

【问题讨论】:

标签: c


【解决方案1】:

这是说程序是成功还是失败。

您也可以使用return EXIT_SUCCESS;return EXIT_FAILURE;

您可以像这样检查退货:

【讨论】:

  • 但为了成功(真)我认为使用 1 而不是 0
  • 另外我的程序运行良好,没有返回(0)
  • @TusharSharma 返回 0(或以 0 作为状态调用 exit())表示在​​ C 中成功完成程序。1 表示某种错误。
  • @Shawn 好的,所以你的意思是布尔逻辑不适用,因为根据它 1 是真的我是新人,这就是为什么我对 c 如此困惑
  • @PSkocik:1 作为退出状态的含义是实现定义的,根据 C 2018 7.22.4.4 5。
【解决方案2】:

由于 C99 标准,您不需要在 main 函数末尾显式声明 return 0; ,编译器会为您隐式添加。

另见例如this main function reference.

请注意,这个隐含的return 0; 仅对main 函数有效。

【讨论】:

    【解决方案3】:

    您在main 中不需要它,因为自 c99 以来 main 已被特例化,表现为在关闭 } 之前存在隐式 return 0;。 (return(0); 中的括号是不必要的。)

    对于任何其他函数,如果它返回一个int,而你没有返回一个,则函数的调用者将在尝试使用返回值时调用未定义的行为,这很糟糕,所以如果你声明一个函数返回一个值,它应该返回一个,出于对调用者的考虑。

    main 的情况下,调用者(间接)是操作系统,返回值用于表示失败(非零返回值,或者更可移植的是EXIT_FAILURE 宏的值)或成功(返回值0或EXIT_SUCCESS宏,保证为==0)执行程序。例如,该值可以在 shell 脚本中使用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-03-15
      • 2014-05-01
      • 1970-01-01
      • 2019-01-01
      • 2013-06-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多