现在的位置: 首页 > 综合 > 正文

return 和 exit

2017年12月15日 ⁄ 综合 ⁄ 共 331字 ⁄ 字号 评论关闭

1 return的作用:释放局部变量(会调用局部对象的析构函数),并弹栈(即释放其所在函数申请的栈),并回到其上级函数。

2 exit的作用:exit 不是系统调用,是glibc对系统调用_exit 或 _exitgroup() 的封装。不做任何清理栈的操作,只返回到操作系统(即结束进程,进程申请的堆栈由操作系统清理)。

3 return 和 exit 在 main 函数中使用:

   1: // main 函数结束时也隐式调用 exit 函数,然后清理自身申请的资源。

   2: int main()

   3: {

   4:     ....

   5:     return 0; // 清理当前栈

   6: }

   7: // 直接返回到系统,系统清理结束的进程资源,其效果同上面形同

   8: int main()

   9: {

  10:     .....

  11:     exit(0); // 不清理当前栈

  12: }

【上篇】
【下篇】

抱歉!评论已关闭.