C++ exit 与 return 浅析
本文從代碼形式。經(jīng)常使用方式,相關(guān)概念,調(diào)用關(guān)系和比較分析,這5個(gè)維度淺析 exit 與 return 在C++的同樣點(diǎn)與差別。
【常見(jiàn)形式】
exit(0): ? 正常執(zhí)行程序并退出程序。exit(1): ? 非正常執(zhí)行導(dǎo)致退出程序;
return( ):返回函數(shù),若在主函數(shù)中,則會(huì)退出函數(shù)并返回一值。
【相關(guān)概念】
- return 語(yǔ)句可被用來(lái)使正在執(zhí)行分支程序返回到調(diào)用它方法。表示中止當(dāng)前函數(shù)的執(zhí)行。并將操作權(quán)返回給調(diào)用者,假設(shè)是在main函數(shù)中。表示將操作權(quán)返回給操作系統(tǒng)。 ? ?
只是作為一個(gè)良好的編程習(xí)慣,每一個(gè)函數(shù)都有返回語(yǔ)句倒是對(duì)的,這樣更有可讀性,并利于程序的維護(hù) !
return 指令一個(gè)是返回一個(gè)指定數(shù)據(jù)給主調(diào)函數(shù),另外的一個(gè)作用就是 結(jié)束 所在函數(shù)的運(yùn)行,return 沒(méi)必要要返回一個(gè)值。
- exit()函數(shù)用于在程序執(zhí)行的過(guò)程中隨時(shí)結(jié)束程序,exit的參數(shù)state是返回給操作系統(tǒng)。返回0表示程序正常結(jié)束,非0表示程序非正常結(jié)束。main函數(shù)結(jié)束時(shí)也會(huì)隱式地調(diào)用exit函數(shù)。exit函數(shù)執(zhí)行時(shí)首先會(huì)執(zhí)行由atexit()函數(shù)登記的函數(shù)。然后會(huì)做一些自身的清理工作,同一時(shí)候刷新 全部輸出流、關(guān)閉全部打開(kāi)的流而且關(guān)閉通過(guò)標(biāo)準(zhǔn)I/O函數(shù)tmpfile()創(chuàng)建的暫時(shí)文件。
【另】
每一個(gè)進(jìn)程都會(huì)有一個(gè)返回值的。進(jìn)程開(kāi)始時(shí)是由系統(tǒng)的一個(gè)啟動(dòng)函數(shù)掉用了main函數(shù)的: ??int nMainRetVal = main();?
當(dāng)從main函數(shù)退出后。啟動(dòng)函數(shù)便調(diào)用exit函數(shù),而且把nMainRetVa傳遞給它。所以。不論什么時(shí)候都會(huì)調(diào)用exit函數(shù)的,正常情況下。main函數(shù)不會(huì)調(diào)用exit函數(shù)的,而是由return 0; 返回值給nMainRetVal的,exit再接收這個(gè)值作為參數(shù)的。所以,正常情況下是以exit(0)退出的。
假設(shè)。你程序發(fā)生異常,你能夠在main函數(shù)中調(diào)用exit(1),強(qiáng)制退出程序,強(qiáng)制終止進(jìn)程。非0表示不正常退出。
【比較分析】 1、return返回函數(shù)值,是keyword;exit是一個(gè)函數(shù)。
2、return是語(yǔ)言級(jí)別的。它表示了調(diào)用堆棧的返回;而exit是系統(tǒng)調(diào)用級(jí)別的。它表示了一個(gè)進(jìn)程的結(jié)束。
3、return是函數(shù)的退出(返回);exit是進(jìn)程的退出。
4、return是C語(yǔ)言提供的,exit是操作系統(tǒng)提供的(或者函數(shù)庫(kù)中給出的)。
5、return用于結(jié)束一個(gè)函數(shù)的運(yùn)行,將函數(shù)的運(yùn)行信息傳出個(gè)其它調(diào)用函數(shù)使用;exit函數(shù)是退出應(yīng)用程序。刪除進(jìn)程使用的內(nèi)存空間,并將應(yīng)用程序的一個(gè)狀態(tài)返回給OS,這個(gè)狀態(tài)標(biāo)識(shí)了應(yīng)用程序的一些運(yùn)行信息,這個(gè)信息和機(jī)器和操作系統(tǒng)有關(guān),通常是0為正常退出。非0為非正常退出。
6、非主函數(shù)中調(diào)用return和exit效果非常明顯。可是在main函數(shù)中調(diào)用return和exit的現(xiàn)象就非常模糊。多數(shù)情況下現(xiàn)象都是一致的。
總結(jié)
以上是生活随笔為你收集整理的C++ exit 与 return 浅析的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 文件共享服务器地址格式,文件共享服务器配
- 下一篇: QT GUI界面中集成VISIO绘图区详