_fastcall, __fastcall

Aus Appmethod Topics
Wechseln zu: Navigation, Suche

Nach oben zu Schlüsselwörter alphabetisch - Index


Kategorie

Modifizierer, Schlüsselwort-Erweiterungen

Syntax

rückgabewert _fastcall funktionsname(parameterliste)
rückgabewert __fastcall funktionsname(parameterliste)

Beschreibung

Verwenden Sie den Modifizierer __fastcall, um Funktionen zu deklarieren, die erfordern, dass Parameter in Registern übergeben werden. Die ersten drei Parameter werden (von links nach rechts) in EAX, EDX und ECX übergeben, falls sie in das Register passen. Die Register werden nicht verwendet, wenn der Parameter ein Gleitkommatyp oder struct-Typ ist.

Hinweis: Alle VCL-Klassenelementfunktionen und Formular-Klassenelementfunktionen müssen die Konvention __fastcall verwenden.
Hinweis: Nur das Format __fastcall (mit zwei Unterstrichen) wird in C++-Compilern, die durch Clang erweitert wurden, unterstützt.

Der Compiler behandelt diese Aufrufkonvention als Angabe einer anderen Sprache, ähnlich wie bei _cdecl und _pascal.

Funktionen, die mit _cdecl oder _pascal deklariert werden, können nicht gleichzeitig auch mit _fastcall deklariert werden, weil sie die Parameter über den Stack übergeben. Weiterhin kann der Modifizierer __fastcall nicht zusammen mit _export verwendet werden.

Der Compiler stellt den Namen von __fastcall-Funktionen das At-Zeichen ("@") voran. Dies gilt sowohl für nicht veränderte C-Funktionsnamen als auch für veränderte C++-Funktionsnamen.

Informationen zur __fastcall-Implementierung im Stil von Microsoft C++ finden Sie bei __msfastcall und __msreturn.

Siehe auch