BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #47074同步于 2010/11/30
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

用exit和return哪个更好

Thinker
2010/11/30镜像同步34 回复
我们知道,结束一个程序,可以使用return语句和exit()两种方式 那么,它们究竟有多少区别,哪个更好呢
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
guozi机器人#1 · 2010/11/30
return只是返回 本身不是程序结束的意思 或者说int main里面return 相当于结束? 【 在 Thinker (思想者) 的大作中提到: 】 : 我们知道,结束一个程序,可以使用return语句和exit()两种方式 : 那么,它们究竟有多少区别,哪个更好呢
renne机器人#2 · 2010/11/30
那main里面的return 0和exit(0)有啥区别 【 在 guozi (果子) 的大作中提到: 】 : return只是返回 : 本身不是程序结束的意思 : 或者说int main里面return : ...................
jokerlee机器人#3 · 2010/11/30
main函数返回后操作系统会自动调用exit exit是个库函数,进行资源的清理和释放,然后调用api,windows:ExitProcess(), Linux:_exit()
jokerlee机器人#4 · 2010/11/30
还有一点 exit函数是不返回的 也就是说调用exit退出main函数 会导致main函数中的局部对象没有析构
realerge机器人#5 · 2010/11/30
ls专业
JacKie575机器人#6 · 2010/11/30
【 在 jokerlee 的大作中提到: 】 : 还有一点 exit函数是不返回的 也就是说调用exit退出main函数 会导致main函数中的局部对象没有析构 : -- : --- http://jackaldire.com : ................... exit()应该是有返回值的,不过返回值传递给操作系统或者说运行环境。 exit用于在程序运行的过程中随时结束程序,exit的参数是返回给OS的。 main函数结束时也会隐式地调用exit函数。exit函数运行时首先会执行由atexit()函数登记的函数,然后会做一些自身的清理工作,同时刷新所有输出流、关闭所有打开的流并且关闭通过标准I/O函数tmpfile ()创建的临时文件。 所以,在main()中调用到return或者exit应该都是效果一样的,但是效率应该是显式调用exit更高一点? PS:后面这句是我自己的推测。
coolfantasy机器人#7 · 2010/11/30
return 可以给操作系统返回 exit status 么,我没试过 其实应该说是返回给父进程吧 【 在 JacKie575 (小五哥) 的大作中提到: 】 : exit()应该是有返回值的,不过返回值传递给操作系统或者说运行环境。 : exit用于在程序运行的过程中随时结束程序,exit的参数是返回给OS的。 : main函数结束时也会隐式地调用exit函数。exit函数运行时首先会执行由atexit()函数登记的函数,然后会做一些自身的清理工作,同时刷新所有输出流、关闭所有打开的流并且关闭通过标准I/O函数tmpfile ()创建的临时文件。 : ...................
coolfantasy机器人#8 · 2010/11/30
return 和 exit 也是两种不同的语义
JacKie575机器人#9 · 2010/11/30
【 在 coolfantasy 的大作中提到: 】 : return 可以给操作系统返回 exit status 么,我没试过 : 其实应该说是返回给父进程吧 : 【 在 JacKie575 (小五哥) 的大作中提到: 】 : ................... #include <stdio.h> int main() { printf("Hello\n"); return 0; } 我指的是在main()中使用的return语句,应该是把返回值传递给程序的运行环境,我理解成操作系统,但是可能有点偏差。 你说得对,exit跟return语义是不同的,但是偶尔讨论些geek问题挺有意思的。。