成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

普通的Int main(){}沒有寫Return 0;會怎么樣?

開發 前端
正常一個帶有返回值的函數,返回值都會存在某個地方,可能是棧上也可能是寄存器里,如果你不給它返回值,那可能外部獲取的返回值就是個奇奇怪怪的值,因為咱也不知道那塊地址是什么數據。

[[409477]]

本文轉載自微信公眾號「程序喵大人」,作者程序喵大人。轉載本文請聯系程序喵大人公眾號。

經常在知乎上可以看到這個問題,于是嘗試著回答了一下,沒想到國內C++巨佬吳詠煒老師還給我點了個贊,讓我相當激動,下面具體介紹下!

結論可能大家看上面的圖就知道了,沒有加return 0;編譯器會自動添加一個。那怎么證明呢?

可以查看相應的匯編代碼,查看匯編代碼推薦使用godbolt.org網站,相當方便。

如上圖,輸入C++代碼,在右半部分會顯示編譯器編譯后的匯編代碼,通過查看高級語言背后的匯編指令我們可以更好的分析代碼的性能。網站更強大的功能是它支持市面上幾乎所有的編譯器,而且各個版本都有。

下面使用這個網站分析一波!

先看一段帶有return 0的截圖:

看我右面紅框圈出來的代碼,大家可以理解為eax就是main()函數的返回值,這里可以看到main()函數的返回值是0。

再看一段不帶return 0的相應截圖:

可以發現編譯器還是把eax的值設為了0,由此可以理解為,即使在main函數中不寫return 0,編譯器還是會默認添加個return 0。

那其他非main函數也會默認添加個return 0嗎?

先看一個普通的帶有int返回值的函數:

注意看func()中的eax寄存器被賦值為9,即func()的返回值為9。

如果不加return a是什么樣子?

可以看到,如果在func()內不寫return語句,編譯器則沒有給eax寄存器更新值,那函數的返回值就不會是我們期待的樣子。

得出結論:正常一個帶有返回值的函數,返回值都會存在某個地方,可能是棧上也可能是寄存器里,如果你不給它返回值,那可能外部獲取的返回值就是個奇奇怪怪的值,因為咱也不知道那塊地址是什么數據。

但是吧,main函數除外,因為main函數沒有return的話,編譯器會默認加個return 0;但個人認為這也確實是不好的習慣,mian函數會犯這種錯誤,其它函數估計也會這樣,所以最好所有的帶有返回值的函數都添加return xxx。

 

打完收工。

 

責任編輯:武曉燕 來源: 程序喵大人
相關推薦

2021-09-01 10:50:21

int main()return 0語言

2023-06-30 08:23:36

Spring!SolonJavalin

2020-05-06 08:44:20

等保2.0WAFIDC

2023-10-23 19:58:01

Android

2024-08-22 08:50:51

2025-02-11 09:01:57

2018-07-31 15:38:07

SDN物聯網IIoT

2014-02-18 11:24:07

云計算PaaS

2024-10-14 09:58:06

并發編程共享

2020-04-28 08:10:42

編程Resflux應用

2018-08-07 09:38:06

2023-06-07 17:46:32

AI高考

2023-02-06 08:23:22

ChatGPT系統Linux

2024-05-07 08:46:06

GoGoogle云原生

2020-05-11 17:08:28

蘋果WindowsMacBook

2019-07-19 15:42:57

Hadoop大數據YuniKorn

2015-07-23 11:49:31

程序猿

2020-11-27 07:45:31

JVM垃圾回收

2023-05-15 10:17:03

2009-12-24 14:05:06

Fedora core
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲成人av一区二区 | 欧美精品网站 | 日韩中文在线视频 | 在线视频中文字幕 | 成人在线视频看看 | 免费一级欧美在线观看视频 | 日日干日日操 | 一级毛片免费视频观看 | 九九热在线视频 | 欧美a视频 | 成人不卡视频 | 亚洲欧美在线视频 | 欧美一区免费 | 欧美不卡 | 激情欧美日韩一区二区 | 自拍偷拍小视频 | 欧美在线二区 | 中文字幕高清在线 | 日韩久久久久久 | 国产欧美一区二区三区国产幕精品 | 美女在线国产 | 一区二区三区视频免费看 | 波多野结衣一二三区 | 亚洲精品在线国产 | 国产精品福利视频 | 中文字幕日韩一区 | 国产日产精品一区二区三区四区 | 亚洲黄色成人网 | 色视频免费 | 人人性人人性碰国产 | 久草在线在线精品观看 | 成人免费福利 | 国产一区不卡在线观看 | 99精品网站 | 自拍偷拍小视频 | 国产一区二区三区四区在线观看 | 亚洲免费人成在线视频观看 | 国产精品国产精品国产专区不片 | 日韩视频在线观看中文字幕 | 欧美一级特黄aaa大片在线观看 | 9久9久 |