请问C++中如果需要中途退出程序,exit(1)和exit(0)以及return有什么区别呢? 谢谢!

 我来答
zzyyxxaabbcc
2011-06-19 · TA获得超过3641个赞
知道大有可为答主
回答量:3542
采纳率:50%
帮助的人:3201万
展开全部
对 LZ对never715的追问 的回复:

main函数声明为void类型没有问题,这种情况通常用于不需要操作系统关心程序的返回结果的情况下。此时,程序中使用exit(0)这样的代码,编译器通常会给出错误或警告,提示main函数是无返回值类型。

如果一个程序需要告诉操作系统它的执行结果是正常还是异常,那么main函数应该声明为int类型,同时在代码中任意位置都可以调用exit函数,参数为一个整数数值,如exit(0)或exit(1)等等,通常exit(0)表示程序正常结束,而其他值表示异常结束。但也不是那么绝对,主要还是要看程序的调用者如何理解并使用这个返回值。
main函数的返回值也可以用return来返回,当然仅限定在main函数体内使用,可以在main函数体内任意位置使用return 0、return 1这样,就如同函数内部一样。

如果LZ想详细了解程序返回值的相关知识和用途,建议了解一下UNIX系统的shell编程,DOS编程也可以,但资料可能会比较少。

现在WINDOWS系统的编程基本上都是图形化、窗口式编程,程序的返回值不再像UNIX SHELL和MSDOS中那么有用,所以WINDOWS下的编程几乎都不再考虑返回值这个问题了。
never715
2011-06-19 · TA获得超过942个赞
知道小有建树答主
回答量:1010
采纳率:84%
帮助的人:463万
展开全部
return 是退出函数模块并返回值给调用该函数的操作数,所以函数前要有返回类型,如果是用在main函数中的话,main函数返回值不能声明成void,那么此时的return与exit调用都是使程序结束并返回到操作系统。
exit后面跟个整形数(一般用的宏),通常用0,表示退出程序,然后跳到操作系统。他不受函数返回值限制
注:main函数是操作系统调用的
追问
再请教一下:
我看书上有程序是写成:
void main()
{……
if(……)
{ ……
return;
}
}
主函数无返回值,是void型,那么这里这样写错了吗?但编译运行时都没错呀?还是应该用exit()呢?
谢谢!
追答
没有错!但是原则上最好不要这样写,此时的return后面没有接返回值编译器自动调节的!但是如果后面接了返回值编译就会报错!以后这种情况就用exit
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
353lsdxgs
2011-06-19 · TA获得超过2241个赞
知道大有可为答主
回答量:4865
采纳率:0%
帮助的人:2090万
展开全部
abort()函数通过发出一个SIGABRT信号终止程序的执行。
abort()函数不会清空缓冲区,也没有调用之前用atexit()函数注册的清理函数。

exit()函数结束程序,返回一个值给操作系统,告知程序的最后状态。在调用exit()函数之后,控制权会移交给操作系统。
在结束程序之前,exit()函数会调用之前使用atexit()注册过的所有函数,按照LIFO次序调用,关闭所有打开的文件,删除tmpfile()函数建立的所有临时文件
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e35e188
2012-06-01
知道答主
回答量:20
采纳率:0%
帮助的人:5.4万
展开全部
#include<stdio.h>
#include<stdlib.h>

int test_exit()
{
printf("do sth&& sub fun exit\n");
//exit(0);
//return 0;
//exit(4);
return (4);
}
int main()
{
int a;
a=test_exit();
printf("a=%d\n",a);
printf("main exit\n");
return 0;
}
把这个程序编译 运行 就知道区别在哪里了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式