exit(0) exit(1) return() 3个的区别
?
exit(0):正常運(yùn)行程序并退出程序;
exit(1):非正常運(yùn)行導(dǎo)致退出程序;
return():返回函數(shù),若在主函數(shù)中,則會(huì)退出函數(shù)并返回一值。
詳細(xì)說(shuō):
??1. return返回函數(shù)值,是關(guān)鍵字;? 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ù)的執(zhí)行,將函數(shù)的執(zhí)行信息傳出個(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)象都是一致的。
?
exit(0)與exit(1)對(duì)你的程序來(lái)說(shuō),沒(méi)有區(qū)別。對(duì)使用你的程序的人或者程序來(lái)說(shuō),區(qū)別可就大了。
一般來(lái)說(shuō),exit 0 可以告知你的程序的使用者:你的程序是正常結(jié)束的。如果 exit 非 0 值,那么你的程序的使用者通常會(huì)認(rèn)為你的程序產(chǎn)生了一個(gè)錯(cuò)誤。
以 shell 為例,在 shell 中調(diào)用完你的程序之后,用 echo $? 命令就可以看到你的程序的 exit 值。在 shell 腳本中,通常會(huì)根據(jù)上一個(gè)命令的 $? 值來(lái)進(jìn)行一些流程控制。
轉(zhuǎn)載于:https://www.cnblogs.com/jack-hzm/p/10812737.html
與50位技術(shù)專家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的exit(0) exit(1) return() 3个的区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: springmvc中获取request对
- 下一篇: springboot集成Apollo分布