C语言 如果exit(0)在return1之前,将执行return1



下面的代码中发生了什么,程序执行'return 1'还是之前退出?

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

exit()无论如何都结束程序。所以:没有。实际上,C运行时总是会做类似于

的事情
exit(main(argc, argv));

执行你的程序。

(含义:如果 main()返回,则自动调用exit()并返回其返回值)

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

  • exit()函数导致进程终止。
  • exit()函数不返回
  • 您的程序无法到达return 1;

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

exit(1);
return 0;

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

if (printf("Byen") <= 0)
    exit(1);
return 0;

相关内容

  • 没有找到相关文章

最新更新