Linux下 return和exit的区别
1个回答
展开全部
return
return 表示从被调函数返回到主调函数继续执行,返回时可附带一个返回值,由return后面的参数指定,当然如果是在主函数main, 自然也就结束当前进程了,如果不是,那就是退回上一层调用。
return通常是必要的,因为函数调用的时候计算结果通常是通过返回值带出的。
如果函数执行不需要返回计算结果,也经常需要返回一个状态码来表示函数执行的顺利与否(-1和0就是最常用的状态码),主调函数可以通过返回值判断被调函数的执行情况。
如果实在不需要函数返回什么值,就需要用void声明其类型。
补充:如果你函数名前有返回类型定义,如int,double等就必须有返回值,而如果是void型,则可以不写return,但这时即使写了也无法返回数值的
例如:
1、非void型
int f1()
{
int i=1;
return 1;
//return(i); //这样也可以
}
2、void型
void f2()
{
int i=1;
//return;//这样也可以,不要这一句也可以
}
有时即使被调用函数是void类型被调函数中的return也不是毫无意义的
举例:
#include "stdio.h"
void function()
{printf("111111");
return;
printf("222222");
}
main()
{function();
}
运行结果为:屏幕上只输出一串数字111111而没有222222。但是如果去掉function函数中的return语句,就可以同时输出一串数字222222。
exit()
exit(0)表示正常退出执行程序,如果加其它的数值:1,2,....可以表示由于不同的错误原因而退出 。
那么,1,2,3怎么对应不同的原因? --你自己想让它是什么意思,它就是什么意思
但一般都有常用的、通用的含义:比如 0 一般都表示正常返回、退出。
因此,,在main函数中exit(0)等价于return 0。
return 表示从被调函数返回到主调函数继续执行,返回时可附带一个返回值,由return后面的参数指定,当然如果是在主函数main, 自然也就结束当前进程了,如果不是,那就是退回上一层调用。
return通常是必要的,因为函数调用的时候计算结果通常是通过返回值带出的。
如果函数执行不需要返回计算结果,也经常需要返回一个状态码来表示函数执行的顺利与否(-1和0就是最常用的状态码),主调函数可以通过返回值判断被调函数的执行情况。
如果实在不需要函数返回什么值,就需要用void声明其类型。
补充:如果你函数名前有返回类型定义,如int,double等就必须有返回值,而如果是void型,则可以不写return,但这时即使写了也无法返回数值的
例如:
1、非void型
int f1()
{
int i=1;
return 1;
//return(i); //这样也可以
}
2、void型
void f2()
{
int i=1;
//return;//这样也可以,不要这一句也可以
}
有时即使被调用函数是void类型被调函数中的return也不是毫无意义的
举例:
#include "stdio.h"
void function()
{printf("111111");
return;
printf("222222");
}
main()
{function();
}
运行结果为:屏幕上只输出一串数字111111而没有222222。但是如果去掉function函数中的return语句,就可以同时输出一串数字222222。
exit()
exit(0)表示正常退出执行程序,如果加其它的数值:1,2,....可以表示由于不同的错误原因而退出 。
那么,1,2,3怎么对应不同的原因? --你自己想让它是什么意思,它就是什么意思
但一般都有常用的、通用的含义:比如 0 一般都表示正常返回、退出。
因此,,在main函数中exit(0)等价于return 0。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询