C语言中的exit函数 以及他与return函数的区别

180it 2020-02-06 PM 1772℃ 0条

1.   exit() 结束当前进程/当前程序/,在整个程序中,只要调用 exit ,就结束

exit(0)表示进程正常退出. 返回 0;

exit(1)表示进程非正常退出. 返回 1.

2.    exit与return的区别

exit()函数与return语句的最大区别在于,调用exit()函数将会结束当前进程,同时删除子进程所占用的内存空间,把返回信息传给父进程。当exit()中的参数为0时,表示正常退出,其他返回值表示非正常退出,执行exit()函数意味着进程结束;而return仅表示调用堆栈的返回,其作用是返回函数值,并且退出当前执行的函数体,返回到函数的调用处,在main()函数中, return n和exit(n)是等价的。

return示例1:

include <stdio.h>

include <stdlib.h>

int print()
{

int n;  
n = 0;  
printf("使用return来结束循环\n");  
while(1)  
{  
    if(9==n)  
        return n;  
    n++;  
}  
return 0;  

}

void main(void)
{

int ret;  
printf("调用print()函数之前\n");  
ret = print();  
printf("print()函数的返回值ret=%d\n",ret);  
printf("调用print()函数之后\n");  

return ;  

}
运行结果:
调用print()函数之前
使用return来结束循环
print()函数的返回值ret=9
调用print()函数之后
在上面的代码中,用return语句来退出while死循环,在main()函数中print()函数的调用处将返回值赋给ret,打印输出后可以看到使用return语句成功地返回了9。

exit示例2:

include <stdio.h>

include <stdlib.h>

void print()
{

int n;  
n = 0;  
printf("使用exit来结束循环\n");  
while(1)  
{  
    if(9==n)  
        exit(1);  
    n++;  
}  
return ;  

}

void main(void)
{

int ret;  
printf("调用print()函数之前\n");  

    ret = print();  
    printf("print()函数的返回值ret=%d\n",ret);  
    printf("调用print()函数之后\n");

return ;  

}
运行结果:

调用print()函数之前
使用exit来结束循环
从以上代码可以看出,如果执行exit()函数后能够返回到main()函数的调用处,那么可以打印出接下来的信息“调用print()函数之后”,但是运行结果表明在调用exit()函数之后没有任何输出,所以执行exit()函数之后将直接结束整个程序的运行。
————————————————
版权声明:本文为CSDN博主「少安的砖厂」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_28093585/article/details/79369550

支付宝打赏支付宝打赏 微信打赏微信打赏

如果文章或资源对您有帮助,欢迎打赏作者。一路走来,感谢有您!

标签: none

C语言中的exit函数 以及他与return函数的区别