日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

Linux學習筆記4——函數調用棧空間的分配與釋放

系統 2644 0

一、函數執行時使用棧空間作為自己的臨時棧,3種方式決定編譯器清空棧的方式:__stdcall、 __fastcall、__cdecl

1、__stdcall表示每個調用者負責清空自己調用的函數的臨時棧
???? __fastcall函數自己在返回前自己清空臨時棧,然后返回值退出
???? __cdecl表示所有調用者只有一個清空函數來負責清空所有被調用函數的臨時棧

2、這三種方式決定函數棧壓棧的參數順序,都是從右到左.

3、在window下,函數名前加_stdcall,它決定了函數的名字轉換方式.

?

二、關于臨時棧的總結

1.函數執行的時候有自己的臨時棧(在局部棧里).
???? C++成員函數擁有兩個棧空間,一個是函數本身的棧空間,另一個是對象的棧空間
???? 因為函數本身是在對象的棧空間里運行
???? C里函數只有一個棧空間

2.函數的參數就在臨時棧中.如果函數傳遞實參.則用來初始化臨時參數變量.
??不管哪種傳遞,實質傳遞的都是值,一般變量傳的是數據,而指針傳的是地址值??

3.通過寄存器返回值.(使用返回值返回數據)

4.通過參數返回值.(參數必須是指針)
? ?指針指向的區域必須事先分配.

5.如果參數返回指針.參數就是雙指針.

Linux學習筆記4——函數調用棧空間的分配與釋放


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 樟树市| 鸡东县| 定南县| 浪卡子县| 潍坊市| 六安市| 特克斯县| 星座| 丰原市| 轮台县| 额济纳旗| 永吉县| 息烽县| 浦北县| 托克逊县| 许昌县| 富阳市| 白玉县| 迁安市| 永昌县| 无为县| 绩溪县| 塔城市| 娄烦县| 南通市| 平泉县| 波密县| 碌曲县| 青川县| 烟台市| 大理市| 丁青县| 连南| 琼海市| 伊吾县| 长沙市| 松潘县| 英德市| 磐石市| 北安市| 花莲市|