如果在返回1之前退出(0),那么return1会执行吗?

时间:2015-09-22 17:35:32

标签: c return exit

以下代码会发生什么,程序执行“返回1”还是退出?

int cmd_quit(tok_t arg[]) {
  printf("Bye\n");
  exit(0);
  return 1;
}

4 个答案:

答案 0 :(得分:3)

exit()无论如何都会结束该计划。所以不行。实际上,C运行时总是会执行类似的

exit(main(argc, argv));

执行你的程序。

(意思是:如果 main()返回,exit()会自动调用其返回值)

答案 1 :(得分:1)

程序将在遇到return 1;语句之前退出。

答案 2 :(得分:1)

  • exit()函数会导致进程终止。
  • exit()函数未返回。
  • 您的计划无法访问return 1;

答案 3 :(得分:0)

函数exit将在return之前执行,但它通常用于异常退出并将失败代码返回给调用者。所以最好反转退出值

exit(1);
return 0;

但是在您提供的代码中,检测实际故障是有意义的。

if (printf("Bye\n") <= 0)
    exit(1);
return 0;