Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 如果在返回1之前存在退出(0),是否会执行返回1?_C_Return_Exit - Fatal编程技术网

C 如果在返回1之前存在退出(0),是否会执行返回1?

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运行时总是会做类似的

在下面的代码中发生了什么,程序是执行“return1”还是在之前退出

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()
      (请参阅我的答案)。