我之前看过C语言中的0表示false,1表示true。 并且注意到 main 函数返回 0 但这是为什么呢?如果我的所有代码都成功运行,它应该返回 true (1)。 另一个相关问题,我仍然无法理解谁可以使用可返回值?因为在我的程序中没有其他函数调用主函数,所以没有人知道我的程序是否运行良好。 我有点困惑。
最佳答案
如果 main
的返回值,您的逻辑就有意义了被解释为 bool 值,但事实并非如此。从初始调用返回到 main
就像调用 exit
功能:它向您正在运行的系统报告终止状态。
标准 C 指定了 3 种可移植的退出状态:
-
0
, 表示成功 -
EXIT_SUCCESS
, 也表示成功 -
EXIT_FAILURE
, 表示失败
(最后两个是<stdlib.h>
中定义的宏。)
在 Unix 上,任何 8 位值 (0 .. 255) 都是允许的。所有非零值都被解释为错误代码。对于任何给定数字的含义,没有通用的约定,只有 0
代表成功和任何其他某种失败。
至于谁可以使用返回值:在Unix上,一个父进程可以使用wait
或 waitpid
获取已终止子进程的退出状态。
在 C 标准库中,执行操作的函数通常不会返回真/假状态。 (诸如 islower
或 isdigit
之类的测试可以,但它们没有任何其他影响。)例如,remove
(删除文件)返回 0
关于成功和-1
错误。这也是 Unix 系统调用的常见模式。例如,open
成功时返回一个文件描述符(一个非负整数),-1
错误。
关于c - main函数返回值错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56760942/