使用exit()函数

我想知道如何以及何时可以像我的书中的程序一样使用exit()函数:

 #include<stdio.h> void main() { int goals; printf("enter number of goals scored"); scanf("%d",&goals); if(goals<=5) goto sos; else { printf("hehe"); exit( ); } sos: printf("to err is human"); } 

当我运行它时,它显示错误: 调用未定义的函数exit()

另外,我想知道如何创build一个选项来closures程序运行的窗口? 例如,我做了一个菜单驱动的程序,有几个选项,其中一个是“退出菜单” 。 我怎样才能让这个程序退出(即closures窗口)?

尝试使用exit(0); 代替。 exit函数需要一个整数参数。 不要忘记#include <stdlib.h>

exit函数在stdlib头文件中声明,所以你需要有

 #include <stdlib.h> 

在您的程序的顶部能够使用exit

还要注意, exit需要一个整数参数,所以你不能像exit()那样调用它,你必须调用exit(0)exit(42) 。 0通常表示程序已成功完成,非零值用作错误代码。

还有预定义的macrosEXIT_SUCCESSEXIT_FAILURE ,例如exit(EXIT_SUCCESS);

exit(int code);stdlib.h声明,所以你需要一个

 #include <stdlib.h> 

也:
– 你没有exit()参数,它需要一个int来提供一个。
– 烧这本书,它使用的是(对于每个人,但Linux内核黑客)坏, 非常 ,非常糟糕。

编辑:
哦,还有

 void main() 

也不好,这是:

 int main(int argc, char *argv[]) 

试试退出 。


哦,还有:

 #include <stdlib.h> int main(void) { /* ... */ if (error_occured) { return (EXIT_FAILURE); } /* ... */ return (EXIT_SUCCESS); } 

exit()函数是一种不带参数的返回types的函数。 它由stdlib头文件定义。

您需要使用( exit(0) or exit(EXIT_SUCCESS))(exit(non-zero)exit(EXIT_FAILURE) )

您必须添加一行#include <stdlib.h>以包含该头文件,并且exit必须返回一个值,以便在exit(any_integer)指定一个整数。

除了将退出代码返回给父进程 –

在UNIX中,我认为被忽略的一个重要方面是,exit()首先调用(以相反的顺序)所有由atexit()调用注册的函数。

详情请参阅SUSv4。

以下示例显示了exit()函数的用法。

 #include <stdio.h> #include <stdlib.h> int main(void) { printf("Start of the program....\n"); printf("Exiting the program....\n"); exit(0); printf("End of the program....\n"); return 0; } 

产量

程序开始….
退出程序….

在unix等操作系统上退出属于系统调用组。 系统调用是特殊的调用,使用户代码(你的代码)可以调用内核代码。 因此退出调用会在将控制权返回给操作系统之前进行一些特定于操作系统的清理操作,从而终止程序。

 #include <stdlib.h> // example 1 int main(int argc, char *argv){ exit(EXIT_SUCCESS); } // example 2 int main(int argc, char *argv){ return 0; } 

有些编译器会给你这两个例子的操作码,但有些不会。 例如,来自第一个函数的操作码将不包含任何types的堆栈定位操作码,其将被包括在第二个示例中,就像任何其他function一样。 你可以编译这两个例子并反汇编,你会看到不同之处。

您可以使用退出代码的任何部分,并确保该过程终止。 不要忘记包含整数参数。

写头文件#include<process.h>并replaceexit(); exit(0); 。 这一定会在Turbo C中工作; 对于其他编译器我不知道。

糟糕的编程习惯。 使用goto函数在C编程中是一个完全不可以的。
还要通过编写#include <iostream.h>来使用exit()函数来包含头文件stdlib.h。 还要记住,exit()函数需要一个整数参数。 如果程序成功完成,则使用exit(0)如果程序有错误,则exit(-1)或退出具有非零值的函数作为参数。

在标题中包含stdlib.h ,然后调用abort(); 在任何你想退出你的程序的地方。 喜欢这个:

 switch(varName) { case 1: blah blah; case 2: blah blah; case 3: abort(); } 

当用户进入开关接受这一点,并把它给你的情况3你呼叫abortfunction。 点击回车键后立即退出屏幕。

使用process.h而不是stdlib和iostream …它将100%工作。