c/c++函數呼叫慣例

來源:互聯網
上載者:User

調用方式

參數傳遞順尋

清理堆棧         

支援變長參數           

使用對象

函數名修飾

(Name-decoration convention)

其他

__cdecl

從右至左

調用者

支援

C/C++預設調用方式

函數名前加底線如函數main修飾成_main

產生的程式碼比stdcall大,因為其要求每個函數調用包含清理堆棧的代碼

__stdcall

從右至左

被調用者

不支援

Win32 API和dll中匯出函數使用

底線開頭,函數名,然後@符號,最後是參數的總byte數。如:int f(int a, double b ),名字為_f@12

 

 

__fastcall

先放入EDX和ECX中,在從右至左

被調用者

不支援

 

以@開頭,函數名,然後@符號最後是參數的總byte數,如:@f@12

 

快速傳參,即快速調用

thiscall

從右至左,this指標放ECX中

被調用者

不支援

C++成員函數專用,用來支援this指標

 

 

本文檔根據MSDN整理而成

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.