Sdílet prostřednictvím


__fastcall

Konkrétní společnosti Microsoft

__Fastcall konvence volání Určuje, že argumenty funkce musí být předány evidence, pokud je to možné.Následující seznam zobrazuje provádění této konvence volání.

Element

Implementace

Předávání argument pořadí

První dvě DWORD nebo menší argumenty jsou předány v ECX a EDX registry; všechny argumenty jsou předány zleva doprava.

Údržba zásobníku odpovědnost

Argumenty nazývá POP funkce ze zásobníku.

Úprava názvu úmluvy

Zavináč (@) předponu názvů; znak následovaný počet bajtů (v desítkové soustavě) v parametru je uveden seznam za názvy.

Případ překlad úmluvy

Provádí překlad není velká.

[!POZNÁMKA]

Kompilátor budoucí verze mohou používat různých žurnálů pro uložení parametrů.

Použití Parametry kompilátoru /Gr kompilátor možnost způsobí, že každá funkce v modulu kompilovat jako fastcall, pokud je funkce deklarována s kolidující atribut nebo název funkce je main.

Na procesoru Itanium řady (IPF) a AMD64 stroje __fastcall přijat a ignorován kompilátorem; čipu IPF úmluvou, parametry jsou předány do rejstříku.

Funkce nestatický třídy Pokud je funkce definovaná mimo řádku, volající modifikátor úmluvy nemá stanovené na definici konce řádku.K nestatickému členu metody třídy, je konvence volání zadané během prohlášení se předpokládá na místě z definice.Tato definice třídy uveden

struct CMyClass {
   void __fastcall mymethod();
};

to

void CMyClass::mymethod() { return; }

odpovídá to

void __fastcall CMyClass::mymethod() { return; }

Příklad

V následujícím příkladu je funkce pojmenovaná DeleteAggrWrapper je předán argumenty registry:

// Example of the __fastcall keyword
#define FASTCALL    __fastcall
   
void FASTCALL DeleteAggrWrapper(void* pWrapper);
// Example of the __ fastcall keyword on function pointer
typedef BOOL (__fastcall *funcname_ptr)(void * arg1, const char * arg2, DWORD flags, ...);

Viz také

Referenční dokumentace

Argument předávání a konvence pojmenování

Klíčových slov jazyka C++