Optionen für Aufrufkonventionen (BCC32)

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu BCC32


Aufrufkonventionen legen die Aufrufsequenzen fest, die der Compiler für Funktionsaufrufe generiert. Aufrufkonventionen unterscheiden sich hinsichtlich der Art und Weise, wie Stack-Bereinigungen, Reihenfolge von Parametern, Groß-/Kleinschreibung und Präfixe für globale Bezeichner behandelt werden.

Sie können die Aufrufkonvention Ihres Projekts in der IDE auf der Seite C++-Compiler in Projekt > Optionen festlegen. Sie können das Schlüsselwort einer Aufrufkonvention für bestimmte Funktionen verwenden, um die Standardaufrufkonvention nur für diese Funktionen zu überschreiben.

Aufrufkonvention Beschreibung Schlüsselwort Befehlszeilenoptionen

C

Unterstriche werden generiert, Namen berücksichtigen die Groß-/Kleinschreibung, Parameter werden von rechts nach links verschoben.

Funktionen können eine variable Parameterliste übernehmen, das heißt, die Anzahl der Parameter muss nicht fest sein.

Dies ist die Standardaufrufkonvention von BCC32.

__cdecl

-pc
-p-

Pascal

Es werden keine Unterstriche generiert, Namen stehen in Großbuchstaben, die Aufruffunktion muss den Stack bereinigen, die Parameter werden von links nach rechts verschoben.

Die resultierenden Funktionsaufrufe sind normalerweise kleiner und laufen schneller als diejenigen, die mit der Aufrufkonvention C generiert werden. Funktionen müssen Argumente immer mit passendem Typ und passender Anzahl übergeben.

__pascal

-p

Register (fastcall)

Übergibt die ersten drei Argumente (ausgewertet von links nach rechts), die in EAX, EDX, ECX passen, und verschiebt die verbleibenden Argumente auf dem Stack von links nach rechts.

__fastcall

-pm
-pr

Standardaufruf

Es werden keine Unterstriche generiert, die Schreibweise von Namen wird beibehalten, die aufgerufene Funktion muss den Stack bereinigen, die Parameter werden von rechts nach links verschoben.

Funktionen müssen Argumente immer mit passendem Typ und passender Anzahl übergeben.

__stdcall

-pm

Siehe auch