如何判断主函数“main()”的返回值?我只想检查main函数的返回值是否在成功执行时为“0”。
谢谢!
答案 0 :(得分:0)
你的意思是你想测试以下返回0?
int main() {
int rc = doSomething();
return rc;
}
你可以这样做:
int main() {
int rc = doSomething();
std::cout << rc << "\n"; // Just print it out before returning
return rc;
}
但是,从运行应用程序的位置检查 shell 中的返回值会更好:
在UNIX / Linux上(在shell中):
> ./my_app
> echo $?
0
在Windows上(在命令提示符下):
> my_app.exe
> echo %ERRORLEVEL%
请注意,在C ++中,您不能拦截对main()
的调用或自行调用。
3.6.1主要功能
函数
main
不得在程序中使用。
因此,您不应尝试包装main()
调用并打印其返回值。即使它有效,它也不会便携(更不用说你实际上最终会运行你的应用程序两次了。)
答案 1 :(得分:0)
main
很特别,主要是因为你不能自己打电话。它返回的值将传递回操作系统,操作系统会执行任何适当的操作。 C ++标准无法规定操作系统如何处理各种返回值,因此它提供了一个抽象:您可以使用return EXIT_SUCCESS
来表示成功,并且可以使用return EXIT_FAILURE
来指示失败。 (您也可以使用return 0
表示return EXIT_SUCCESS
;程序的运行时系统必须正确处理此问题。宏EXIT_SUCCESS
和EXIT_FAILURE
的值适用于编译程序的OS。虽然0
是EXIT_SUCCESS
的典型值,但操作系统当然可能需要不同的值,而EXIT_SUCCESS
将具有该操作系统的适当值。因此,即使您可以检查从main
返回的值,它也不会告诉您太多,也不知道操作系统对成功程序的期望值。
答案 2 :(得分:0)
在 main()
后键入另一个函数,然后在该函数中键入 main();
但是有一个问题, main 将是第一个被自动调用的函数。虽然,我确定有办法解决它。这就是您调用 main 或返回 main 的方式。
希望这会有所帮助。
int main() {
int i = 5;
cout << i;
}
int second() {
main();
}
答案 3 :(得分:-1)
欢迎使用Stack Overflow!
如果它为0,则它为0.您是指定您自己的函数的返回值的人。如果您不确定,请添加困扰您的代码和/或问题。
答案 4 :(得分:-1)
您可以使用unix命令检查先前执行的命令的返回值,在本例中是您的c程序。
echo $?
shell变量$?是上一个命令的返回码。
How to find the return value of last executed command in UNIX?
如果要检查代码中的值,只需在返回之前输入值。