Anzeigen: Delphi C++
Anzeigeeinstellungen

Optionen für Aufrufkonventionen (BCC32)

Aus RAD Studio XE2
Wechseln zu: Navigation, Suche

Nach oben zu BCC32: Der C++-Befehlszeilen-Compiler


Inhaltsverzeichnis

Übersicht

Aufrufkonventionsoptionen teilen dem Compiler die zu erzeugende Aufrufabfolge für Funktionsaufrufe mit. Die Aufrufkonventionen C, Pascal und Register unterscheiden sich in den folgenden Punkten: Behandlung der Stack-Bereinigung, Reihenfolge von Parametern, Schreibweise und Präfix bei globalen Bezeichnern.

Der Standardaufrufkonvention des C++-Compilers lautet: C (-pc)

In C++Builder-Quelltext wird normalerweise die Standardaufrufkonvention C verwendet.

In der IDE können Sie die Aufrufkonvention für das Projekt mit der Option Projekt > Optionen > C++-Compiler festlegen.

Mit den folgenden Schlüsselwörtern können Sie die Standardaufrufkonvention für bestimmte Funktionen überschreiben:


MSVC __fastcall

Befehlszeilenoption: -pm

Diese Option teilt dem Compiler mit, die Aufrufkonvention __msfastcall für alle Funktionen einzusetzen, für die keine explizite Aufrufkonvention deklariert ist.

C

Befehlszeilenoption: -pc, -p-

Diese Option teilt dem Compiler mit, eine C-Aufrufsequenz für Funktionsaufrufe (Unterstriche generieren, Berücksichtigung von Groß- und Kleinschreibung, Parameter von rechts nach links verarbeiten) zu erzeugen. Diese Option hat denselben Effekt wie das Schlüsselwort __cdecl. Funktionen, die mit der Aufrufkonvention C deklariert sind, können eine variable Parameterliste entgegennehmen, das heißt, die Anzahl der Parameter muss nicht fest sein.

Mit den Schlüsselwörtern __pascal, __fastcall oder __stdcall kann eine Funktion oder eine Unterroutine explizit mit einer anderen Aufrufkonvention deklariert werden.

Pascal

Befehlszeilenoption: -p

Diese Option teilt dem Compiler mit, eine Pascal-Aufrufsequenz für Funktionsaufrufe (keine Unterstriche, nur Großbuchstaben, Aufruffunktion bereinigt den Stack, Parameter von links nach rechts verarbeiten) zu erzeugen. Diese Option hat denselben Effekt wie das Schlüsselwort __pascal. Die resultierenden Funktionsaufrufe sind normalerweise kleiner und laufen schneller als die, die mit der Aufrufkonvention C (-pc) generiert wurden. Funktionen müssen Argumente immer mit passendem Typ und passender Anzahl übergeben.

Mit den Schlüsselwörtern __cdecl, __fastcall oder __stdcall kann eine Funktion oder eine Unterroutine explizit mit einer anderen Aufrufkonvention deklariert werden.

Register

Befehlszeilenoption: -pr

Diese Option teilt dem Compiler mit, alle Unterroutinen und Funktionen mit der Register-Parameterübergabekonvention zu erzeugen. Dies hat denselben Effekt wie das Deklarieren aller Unterroutinen und Funktionen mit dem Schlüsselwort __fastcall. Wenn diese Option aktiviert ist, erwarten Funktionen und Routinen die Parameterübergabe in Registern.

Mit den Schlüsselwörtern __pascal, __cdecl oder __stdcall kann eine Funktion oder eine Unterroutine explizit mit einer anderen Aufrufkonvention deklariert werden.

Standardaufruf

Befehlszeilenoption: -ps

Diese Option teilt dem Compiler mit, eine Stdcall-Aufrufsequenz für Funktionsaufrufe (keine Unterstriche, Schreibweise beibehalten, Ablegen aufgerufener Funktionen auf dem Stack, Ablegen der Parameter von rechts nach links) zu erzeugen. Diese Option hat denselben Effekt wie das Schlüsselwort __stdcall. Funktionen müssen Argumente immer mit passendem Typ und passender Anzahl übergeben.

Mit den Schlüsselwörtern __cdecl, __pascal oder __fastcall kann eine Funktion oder eine Unterroutine explizit mit einer anderen Aufrufkonvention deklariert werden.


Siehe auch

Frühere Versionen
In anderen Sprachen