C 如果在返回1之前存在退出(0),是否会执行返回1?
在下面的代码中发生了什么,程序是执行“return1”还是在之前退出C 如果在返回1之前存在退出(0),是否会执行返回1?,c,return,exit,C,Return,Exit,在下面的代码中发生了什么,程序是执行“return1”还是在之前退出 int cmd_quit(tok_t arg[]) { printf("Bye\n"); exit(0); return 1; } 程序将在遇到返回1之前退出语句。程序将在遇到返回1之前退出声明。 该函数导致进程终止 exit()函数不返回 您的程序将无法到达返回1 该函数导致进程终止 exit()函数不返回 您的程序将无法到达返回1 exit()结束程序,无论发生什么。所以:不。实际上,C运行时总是会做类似的
int cmd_quit(tok_t arg[]) {
printf("Bye\n");
exit(0);
return 1;
}
程序将在遇到
返回1之前退出代码>语句。程序将在遇到返回1之前退出代码>声明。
- 该函数导致进程终止
exit()
函数不返回李>
- 您的程序将无法到达
返回1
李>
- 该函数导致进程终止
exit()
函数不返回李>
- 您的程序将无法到达
返回1
李>
exit()
结束程序,无论发生什么。所以:不。实际上,C运行时总是会做类似的事情
exit(main(argc, argv));
执行你的程序
(意思是:如果main()
返回,exit()
将自动调用其返回值)exit()
结束程序,无论发生什么情况。所以:不。实际上,C运行时总是会做类似的事情
exit(main(argc, argv));
执行你的程序
(意思是:如果main()
返回,将自动调用exit()
及其返回值)函数exit
将在return
之前执行,但它通常用于异常退出,并向调用者返回故障代码。因此,最好反转退出值
exit(1);
return 0;
但是在您提供的代码中,检测实际故障是有意义的
if (printf("Bye\n") <= 0)
exit(1);
return 0;
if(printf(“Bye\n”)函数exit
将在return
之前执行,但它通常用于异常退出并向调用者返回失败代码。因此,最好将退出值反转
exit(1);
return 0;
但是在您提供的代码中,检测实际故障是有意义的
if (printf("Bye\n") <= 0)
exit(1);
return 0;
if(printf(“Bye\n”)为什么要在执行return 1;
之前执行?为什么要在执行return 1;
之前执行?在任何情况下(没有像if-else那样的任何条件)都可以写这两种代码吗?@UtkarshGupta没有。exit()
唯一的任务就是在此时此地结束您的程序。如果您在main()的末尾
,只需返回返回代码,运行时将调用exit()
(请参见我的答案)。在任何情况下(没有任何类似于if-else的条件)写入这两种代码是否有任何用处?@UtkarshGupta否。exit()
的唯一任务就是此时此地结束您的程序。如果您在main()的末尾
,只需返回返回代码,运行时将调用exit()
(请参阅我的答案)。