Udostępnij za pośrednictwem


/ Gd, się przełączników /Gr, /Gz (Konwencja wywołania)

Opcje te określają kolejność Admi argumenty funkcji na stosie; czy obiekt wywołujący funkcję lub wywoływana funkcja usuwa argumenty ze stosu na końcu zawinięcia; i wykończeniowe nazwa Konwencji, że kompilator używa się do identyfikacji poszczególnych funkcji.

/Gd
/Gr
/Gz

Uwagi

[!UWAGA]

Te opcje kompilatora są dostępne tylko w kompilatora, ukierunkowanie x 86; te opcje kompilatora nie są dostępne w kompilatory ukierunkowanie x64 lub Itanium.

/Gd, określa ustawienie domyślne __cdecl konwencji wywoływania dla wszystkich funkcji, z wyjątkiem C++ Członkowskich funkcje i oznaczone __stdcall lub __fastcall.

/GrOkreśla __fastcall konwencji wywoływania dla wszystkich funkcji, z wyjątkiem Członkowskie C++, sfunctions i funkcje oznaczone __cdecl lub __stdcall.Wszystkie __fastcall funkcje musi mieć prototypów.

/GzOkreśla __stdcall konwencji wywoływania dla wszystkich funkcji, z wyjątkiem C++ Członkowskich funkcje i oznaczone __cdecl lub __fastcall.Wszystkie __stdcall funkcje musi mieć prototypów.

Funkcje używające zmiennej liczbie argumentów muszą być oznakowane __cdecl.

/Gd, /Gr, and /Gz are not compatible with /clr:safe or /clr:pure.

[!UWAGA]

Dla architektury x 86 procesorów, domyślnie, użyj funkcji Członkowskich C++ __thiscall.

Dla wszystkich procesorów, funkcji składowej, który jest wyraźnie oznaczony jako __cdecl, __fastcall, lub __stdcall używa określonego konwencję wywołania.Funkcji składowej, które przekieruje zmiennej liczbie argumentów zawsze używa __cdecl konwencji wywoływania.

Charakterystyka __cdecl

C __cdecl nazewnictwa zastosowania konwencji nazw funkcji poprzedzoną podkreoleniem ( _ ); nie sprawy tłumaczenie adresów jest wykonywane.O ile nie jest zadeklarowany jako extern "C", funkcje C++ użyć innego schematu wykończeniowe nazwy.Aby uzyskać więcej informacji, zobacz Nazwy dekoracyjne.

Charakterystyka __fastcall

Niektóre z __fastcall argumenty funkcji są przekazywane w rejestrach (dla architektury x 86 procesorów, ECX i EDX), a pozostałe są wkładany na stos od prawej do lewej.Nazywane rutynowych POP te argumenty ze stosu, zanim zwróci.Zazwyczaj /Gr zmniejsza czas realizacji.

[!UWAGA]

Należy zachować ostrożność podczas korzystania z __fastcall konwencji wywoływania dla dowolnej funkcji napisanych w języku zestawu wbudowanej.Korzystanie z rejestrów może powodować konflikt z użycia przez kompilator.

C __fastcall nazewnictwa zastosowania konwencji nazw funkcji poprzedzone znakiem (@) następuje argumentów funkcji, w bajtach rozmiar.Nie tłumaczenia sprawa jest wykonywane.Kompilator używa następującego szablonu dla konwencji nazewnictwa:

@function_name@number

Podczas korzystania z __fastcall Konwencja nazewnictwa, użyj standardowych plików.W przeciwnym razie zostanie wyświetlony nierozwiązane odwołania zewnętrzne.

Charakterystyka __stdcall

A __stdcall argumentów funkcji jest wkładany na stos od prawej do lewej, a następnie wywoływana funkcja punkty obecności tych argumentów ze stosu, zanim zwróci.

C __stdcall nazewnictwa zastosowania konwencji nazw funkcji poprzedzoną podkreoleniem ( _ ) i następuje znak (@) i rozmiar argumenty funkcji w bajtach.Nie sprawy tłumaczenie adresów jest wykonywane.Kompilator używa następującego szablonu dla konwencji nazewnictwa:

_functionname@number

x 86 szczególne

Ta opcja nie ma wpływu na dekorowania nazwy metody w C++ i funkcje.O ile nie jest zadeklarowany jako extern "C" metody C++ i funkcji należy używać różnych schematu wykończeniowe nazwy.Aby uzyskać więcej informacji, zobacz Nazwy dekoracyjne.

Aby uzyskać więcej informacji na temat konwencji wywoływania, zobacz Konwencje wywoływania.

KONIEC x 86 szczególne

Aby ustawić tę opcję kompilatora w środowisku projektowym programu Visual Studio

  1. Otwórz projekt Stron właściwości okno dialogowe.Aby uzyskać szczegółowe informacje, zobacz Jak: Otwórz strony właściwości projektu.

  2. Kliknij przycisk C i C++ folder.

  3. Kliknij przycisk Zaawansowane stronę właściwości.

  4. Modyfikowanie Konwencji wywoływania właściwości.

Aby programowo ustawić tę opcję kompilatora

Zobacz też

Informacje

Opcje kompilatora

Ustawianie opcji kompilatora