- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
这是一个简单的问题,但我一直看到相互矛盾的答案:C++ 程序的主例程应该返回 0
还是 EXIT_SUCCESS
?
#include <cstdlib>
int main(){return EXIT_SUCCESS;}
或
int main(){return 0;}
它们是完全一样的吗? EXIT_SUCCESS
应该只与 exit()
一起使用吗?
我认为 EXIT_SUCCESS
会是更好的选择,因为其他软件可能希望将零视为失败,但我也听说如果您返回 0
,编译器可以无论如何将其更改为不同的值。
最佳答案
EXIT_FAILURE
, 在 main
的返回语句中或作为 exit()
的参数, 是在 C 或 C++ 程序中指示失败的唯一可移植方式。 exit(1)
例如,实际上可以在 VMS 上发出成功终止的信号。
如果您打算使用 EXIT_FAILURE
当您的程序失败时,您不妨使用EXIT_SUCCESS
当它成功时,只是为了对称。
另一方面,如果程序从不发出失败信号,您可以使用 0
或 EXIT_SUCCESS
.标准保证两者都表示成功完成。 (EXIT_SUCCESS
几乎不可能有 0 以外的值,但在我听说过的每个实现中它都等于 0。)
使用 0
有一个小优势,你不需要#include <stdlib.h>
在 C 中,或 #include <cstdlib>
在 C++ 中(如果您使用的是 return
语句而不是调用 exit()
)——但是对于任何重要规模的程序,无论如何您都将直接或间接地包含 stdlib。
就此而言,在从 1999 年标准开始的 C 和所有 C++ 版本中,到 main()
结尾做一个隐含的return 0;
无论如何,所以你可能不需要使用 0
或 EXIT_SUCCESS
明确地。 (但至少在 C 语言中,我认为明确的 return 0;
是更好的风格。)
(有人问起 OpenVMS。我很久没用了,但我记得奇数状态值通常表示成功,偶数值表示失败。C 实现映射 0
到 1
,所以return 0;
表示成功终止。其他值不变传递,因此 return 1;
也表示成功终止。EXIT_FAILURE
将有一个非零偶数值。)
关于c++ - 我应该从 main() 返回 EXIT_SUCCESS 还是 0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8867871/
我在看一个计算 3 个数字的平均值的程序,遇到了 #define EXIT_SUCCESS 0 使 return EXIT_SUCCESS; 正常工作(在 include header 下)。使用 #
假设我有一个程序,其中有一个类似于 errno 的全局变量(名为 project_error )在其中存储过去发生的确切错误,但我还希望函数返回简单的 OK/NOK 状态以简化错误处理,因此我只检查
这个问题在这里已经有了答案: 关闭10 年前。 Possible Duplicate: (C/C++) return EXIT_SUCCESS or 0 from main? 很长一段时间我都在使用
我将在 python 脚本中到处返回 0,但我更喜欢更语义化、更易读的内容。我不喜欢那个神奇的数字。 python 中是否有类似于 C 中如何返回 EXIT_SUCCESS 而不仅仅是 0 的想法?
在 C++ 应用程序的主函数中,我应该何时返回 EXIT_SUCCESS 以及何时返回 EXIT_FAILURE?解压成功是什么意思?举几个例子: 用户忘记了一些必需的命令行参数,我们捕获它,打印帮助
如果您应该从 main 返回 0,并且 EXIT_SUCCESS 是“实现定义的”,它的字面意思是 it is not required to be 0 ,那么如果你不能依赖它是正确的值,它有什么意义
这是一个简单的问题,但我一直看到相互矛盾的答案:C++ 程序的主例程应该返回 0 还是 EXIT_SUCCESS? #include int main(){return EXIT_SUCCESS;}
在您自己的库 API 中使用 EXIT_SUCCESS 和 EXIT_FAILURE 作为函数的返回值是否可以被认为是合理的、好的设计和好的做法? 示例软件是一个低级平台库,在同一产品线的多个产品中用
我正在启动一个进程,想检查它的退出代码是成功还是失败。 Process myProcess = new Process(); myProcess.Start(); myProcess.WaitForE
在 C 程序中,我通常在 exit() 函数中使用 EXIT_SUCCESS 或 EXIT_FAILURE 来提高程序的清晰度和可理解性。 但是在 System.exit() 中我无法使用这些 MAC
ISO 1998 c++ 标准规定在 main 中不显式使用 return 语句等同于使用 return 0。但是如果一个实现有不同的标准“无错误”代码,例如 -1? 为什么不使用标准宏 EXIT_S
这是一个简单的问题,但我一直看到相互矛盾的答案:C++ 程序的主例程应该返回 0 还是 EXIT_SUCCESS? #include int main(){return EXIT_SUCCESS;}
如果我使用 return 0 而不是: 有什么不同吗? system("PAUSE"); return EXIT_SUCCESS 这是脚本: #include using namespace std
我知道 return vs exit() 之间的区别. 我想知道它们与 FreeConsole() 有何不同。 FreeConsole()是一个API函数 (scope: main function)
Python 2.7.6 中是否有 EXIT_SUCCESS 和 EXIT_FAILURE 宏的类似物?如果是,我该如何使用它? 最佳答案 是的,使用 os.EX_OK .(仅限 Unix) 正如文档
我是一名优秀的程序员,十分优秀!