Return 在 C 和 C++ 中

Return in C and C++

所以我用 C 编写代码已经有一段时间了,但仍然让我感到困惑的一件事是函数末尾的“return”。

现在我知道 return 是值,当被 main 调用时,它是一个函数 returns。

但是C的main()函数中的“return 0”是什么意思呢?我还做了以下-

#include <stdio.h>

int main()
    {
       printf("Hello world");
       return 0;
    }

然后,我做了这个-

#include <stdio.h>

int main()
    {
       printf("Hello world";
       return -1;
    }

然后我终于做到了-

#include <stdio.h>

int main()
    {
       printf("Hello world";
       return 45;
    }

它们都编译得很好 运行,但是这些“return”在上述代码的每种情况下做了什么。请详细解释这个 return 以及在这 3 种情况下会发生什么。

main函数的return值是程序的退出值。调用您的程序的进程可以检索此退出值。

首先是一个shell例子:

./myprogram
exitvalue=$?
echo exitvalue = $exitvalue

这将为第一个程序打印 0,为第三个程序打印 45。第二个程序将 可能 打印 255,因为大多数操作系统的退出状态预计在 0 到 255 之间。

对于来自命令行(Linux 和 Unix)的 bash 脚本或程序 运行,这些是常见的退出代码(来自 main 函数的 return 值在这种情况下,或调用 exit()).

0 - OK
1 - Catchall for general errors
2 - Misuse of shell builtins (according to Bash documentation)
126 - Command invoked cannot execute
127 - “command not found”
128 - Invalid argument to exit
128+n - Fatal error signal “n”
130 - Script terminated by Control-C
255\* - Exit status out of range