簡單說明 cdecl stdcall和

2021-08-11 01:50:20 字數 704 閱讀 1972

__cdecl 是 c declaration 的縮寫,表示 c 和 c++ 預設的函式呼叫約定。是c/c++和mfcx的預設呼叫約定。

__stdcall是standard call的縮寫,是c++的標準呼叫方式,當然這是微軟定義的標準,__stdcall通常用於win32 api中(可檢視winapi的定義)。

__fastcall呼叫的主要特點就是快,因為它是通過暫存器來傳送引數的。__fastcall和__stdcall很象,唯一差別就是頭兩個引數通過暫存器傳送。注意通過暫存器傳送的兩個引數是從左向右的。

_cdecl、_stdcall、__fastcall三者之間的區別:

要點__cdecl

__stdcall

__fastcall

引數傳遞方式

右->左

右->左

左邊開始的兩個不大於4位元組(dword)的引數分別放在ecx和edx暫存器,其餘的引數自右向左壓棧傳送

清理棧方

呼叫者清理

被呼叫函式清理

被呼叫函式清理

適用場合

c/c++、mfc的預設方式; 可變引數的時候使用;

win api

要求速度快

c編譯修飾約定

_functionname

_functionname@number

@functionname@number

FormatMessage簡單說明

常用引數簡介.formatmessage format message from system format message allocate buffer,null,lval,null,lptstr hlocal,0,null 第乙個引數是標誌,告訴這個formatmessage函式,我想要的特點...

Subversion 簡單說明

subversion 簡單說明 checkout 從源 管理伺服器取出 commit 提交更新的 到源 管理伺服器。update 從源 管理伺服器獲取 的最新更新。export 從源 管理伺服器匯出 匯出的 將脫離源 管理。revert 將當前資料恢復到最近與伺服器同步的版本,即放棄自己的所有未提交...

std deque簡單說明

本文 http blog.chinaunix.net u2 86575 showart 1734758.html std deque是乙個高效的雙端佇列,可以高效地進行插入和刪除操作。以sgi c stl為例 deque的基本結構是 有乙個map map中的元素是乙個記錄了乙個大小為512位元組的線...