return()与exit()的使用

声明:个人所写所有博客均为自己在学习中的记录与感想,或为在学习中总结他人学习成果,但因本人才疏学浅,如果大家在阅读过程中发现错误,欢迎大家指正。
公众号:
小码虫的公众号

我们常常在C程序中看到return()与exit(),那么这两个有什么区别呢,什么情况下使用呢?

简单概括来说是:exit是进程级别的,作用于当前整个进程;return是函数级别的,作用于将被函数返回值返回给主函数。

return用于对一个函数进行返回,并退出函数。代表着当前函数执行完毕,返回值交给主调函数,可以从一个函数中返回并将控制权返回给调用该函数的函数。
exit()则是一个函数,返回值交给操作系统或父进程。在ISO C中定义,会进行一些清理工作。其操作包括调用各种终止处理程序,然后关闭所有的标准I/O流等。这样就结束掉当前的进程,退出程序并将控制权返回给操作系统。如果是多进程的程序,也只是会结束当前进程,并不会结束整个程序,返回值交给父进程。

区别exitreturn
级别进程级,系统调用级别函数级,语言级别
返回值单进程程序返回给操作系统,多进程返回给父进程返回给主调函数
作用结束当前进程当前(被调)函数运行完毕,表示了调用堆栈的返回
控制权将控制权交给操作系统或父进程将控制权交给主调函数

在main中等价

在main中这两个语句的功能等价,main函数返回一个整型值与用该值调用exit是等价的。
exit(0);
等价于
return 0;
都可用于main函数的结束。

区别

简单例子:

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

	fun();

	printf("主函数结束");

	return 0;
}

int fun() {

	printf("fun结束");
	getchar();

	return 0;
}

这个程序中,先输出“fun结束”,回车后,输出“主函数结束”

将fun中改为exit(0);

int fun() {

	printf("fun结束");
	getchar();

	exit(0);
}

exit(0)将0返回给操作系统,结束掉当前进程,整个程序退出。输出“fun结束”后,按下回车,并不会输出“主函数结束”,而是整个程序结束。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值