为main()返回不同的int值
Returning different int values for main()
我已经搜索了特定问题的答案,但找不到匹配的答案。我知道return 0
和return EXIT_SUCCESS
本质上是说程序成功结束的,但如果你做return 1
或return 2
或任何其他int值呢?不同的int值对编译器来说意味着不同的东西吗?还是返回任何int都意味着程序成功终止,在这种情况下,输入什么int值无关紧要?据我(有限)所知,int main()
似乎只需要返回任何int即可终止。我错了吗?
谢谢,如果之前有人问我这个问题,我很抱歉,我就是找不到。
来源:http://en.wikipedia.org/wiki/Exit_status
"返回的特定代码集对于设置它的程序来说是唯一的。通常它表示成功或失败。函数或程序返回的代码值可能指示故障的特定原因。在许多系统上,值越高,错误的原因就越严重。[1] 可替换地,每个比特可以指示不同的条件,然后将它们一起存储以给出最终值;例如,fsck就是这样做的。"
换句话说,-0或EXIT_SUCCESS
表示程序已成功运行。其他值(包括EXIT_FAILURE
)用于指示故障。每个单独的程序可以可选地使用不同的程序定义代码来指示不同的故障原因。
这确实很重要。如果它以0
或EXIT_SUCCESS
的状态退出,那么您就知道您的程序正确地到达了主函数的末尾(或者调用了exit(0)
)。但是,您可以在程序中的任何时候使用exit(1)
或return 1
来停止程序,因为它去了不该去的地方,这意味着您出现了错误。
不同的数字可以用来识别不同的错误,因此您可能确切地知道程序退出的位置,但为了成功退出,您应该返回0
或EXIT_SUCCESS
。
- 如果"new int"返回"int*",那么为什么"new int[n]"不返回"int**"?
- <Windows>为什么 std::thread::native_handle 返回类型为"long long unsigned int"的值,而不是 void*(又名 HANDLE)?
- 如何使用 uint64_t 键类型从 std::map<int, std::string> 返回值?
- 为什么"weak.lock()"返回"nullptr" "auto weak=std::make_shared<int>(42);"的定义?
- 返回 int 中可被 2 c++ 整除的所有数字的总和
- 为什么 c++ 中的 main() 函数不采用除 int 和 void 之外的任何其他返回类型
- f 是指向函数的指针,该函数采用 int,并返回指向不带任何内容并返回双精度的函数的指针
- 我的运算符重载没有在我的 int main 中返回?
- 为什么我不能返回向量<向量<int>>(进程返回 -1073741819 (0xC0000005))
- 如何使用 SWIG 将 C++ int** 返回值给 Python
- 为什么"unsigned int" + "unsigned int"返回"unsigned int"?
- std::sort in vector<int> 返回 0 而不是值
- 使用 static int 返回 int&in 函数
- Bon appetit :从 int 返回类型函数在 main() 中打印字符串
- int返回垃圾价值
- C++字符串流>> int 返回零
- 为什么numeric_limits::min对int返回负值,而对float/double返回正值?
- 无法将字符串转换为 int 作为回报。在 int 返回函数 getsocial() 中没有声明任何字符串变量
- 在 int 返回函数中返回"false"
- C/ c++程序将输出(int)返回给其他程序