如果exit(0) 在return 1 之前,return1 会执行吗?
If exit(0) is there before return 1, will return1 execute?
下面的代码会发生什么,程序是先执行'return 1'还是退出?
int cmd_quit(tok_t arg[]) {
printf("Bye\n");
exit(0);
return 1;
}
程序将在遇到 return 1;
语句之前退出。
exit()
函数导致进程终止。
-
exit()
函数没有 return。
- 您的计划将达不到
return 1
;
exit()
结束程序,无论如何。所以不行。实际上,C 运行时总是会做类似
的事情
exit(main(argc, argv));
执行您的程序。
(意思是:if main()
returns,exit()
将自动调用其 return 值)
函数exit
会在return
之前执行,但通常用于异常退出,returns给调用者一个失败代码。所以最好反转退出值
exit(1);
return 0;
但是在您提供的代码中,检测实际故障是有意义的。
if (printf("Bye\n") <= 0)
exit(1);
return 0;
下面的代码会发生什么,程序是先执行'return 1'还是退出?
int cmd_quit(tok_t arg[]) {
printf("Bye\n");
exit(0);
return 1;
}
程序将在遇到 return 1;
语句之前退出。
exit()
函数导致进程终止。-
exit()
函数没有 return。 - 您的计划将达不到
return 1
;
exit()
结束程序,无论如何。所以不行。实际上,C 运行时总是会做类似
exit(main(argc, argv));
执行您的程序。
(意思是:if main()
returns,exit()
将自动调用其 return 值)
函数exit
会在return
之前执行,但通常用于异常退出,returns给调用者一个失败代码。所以最好反转退出值
exit(1);
return 0;
但是在您提供的代码中,检测实际故障是有意义的。
if (printf("Bye\n") <= 0)
exit(1);
return 0;