C语言中的exit函数 以及他与return函数的区别
2018-03-07 15:57
381 查看
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 ;
} 运行结果:
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()函数之后将直接结束整个程序的运行。
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()函数之后将直接结束整个程序的运行。
相关文章推荐
- exit()函数与return的区别 C语言
- exit和return的区别以及atexit()函数
- c语言中的return函数、exit()函数,以及二者的区别
- c语言中scanf 与 fgets的区别 以及怎么同时用两个函数
- C语言-函数指针与函数名的区别
- c语言创建函数时void *与 void做修饰符的区别
- C语言 gets()和scanf()函数的区别
- 总结:form中使用onSubmit="return false"防止表单自动提交,以及submit和button提交表单的区别
- C语言之循环结构中break、continue、goto、return和exit的区别
- 【C语言】malloc()和free()函数的讲解以及相关内存泄漏问题
- [置顶] 【C语言】 gets()和scanf()函数的区别
- C语言 gets()和scanf()函数的区别
- C语言 gets()和scanf()函数的区别
- GCC下,C语言参数的内存分配 以及 函数可变参数
- exit()函数详解与Exit() 和 Return() 的区别
- C语言 switch和if..else的区别 以及枚举的作用
- C语言 gets()和scanf()函数的区别
- [Object-C语言随笔之三] 类的创建和实例化以及函数的添加和调用!
- exit、return、_exit、_Exit这几个函数的区别
- Assembly中Load, LoadFrom, LoadFile以及AppDomain, Activator类中相应函数的区别