/ Gd, /Gr, /gz (convenção de chamada)

Essas opções determinam a ordem na qual a função argumentos são colocados na pilha; se a função do chamador ou a função telefonar remove os argumentos da pilha no participante da telefonar; e a convenção de decoração de nome que o compilador usa para identificar funções individuais.

/Gd
/Gr
/Gz

Comentários

Observação:

Essas opções de compilador só estão disponível no compilador x86 de direcionamento; essas opções do compilador não estão disponível em compiladores direcionamento x64 ou Itanium.

/Gd, a configuração padrão, especifica a __cdecl convenção de chamada para todas as funções, exceto de membro C++ funções e marcado __stdcall ou __fastcall.

/Gr Especifica o __fastcall convenção de chamada para todas as funções, exceto de membro C++ sfunctions e funções marcadas __cdecl ou __stdcall. All __fastcall funções devem ter protótipos.

/Gz Especifica o __stdcall convenção de chamada para todas as funções, exceto de membro C++ funções e marcado __cdecl ou __fastcall. All __stdcallfunções devem ter protótipos.

Funções que levam a um número variável de argumentos devem ser marcadas __cdecl.

/Gd, /Gr, e /Gz não são compatível com o / CLR: safe or /clr:pure.

Observação:

Para x86 processadores, por padrão, o uso de funções de membro C++ __thiscall.

Para todos sistema autônomo processadores, uma função de membro que esteja explicitamente marcado sistema autônomo __cdecl, __fastcall, ou __stdcall usa a convenção de chamada especificada. Uma função de membro que leva um número variável de argumentos sempre usa o __cdecl convenção de chamada.

__cdecl especificações

Para C, a __cdecl convenção de nomeclatura usa o nome de função precedido por um sublinhado ( _ ); caso nenhuma conversão é executada. A menos que declarado sistema autônomo extern"C" funções C++ usam um esquema de decoração de nome diferente. Para obter mais informações, consulte Nomes decorados.

__fastcall especificações

Alguns de um __fastcall argumentos da função são passados em registros (para x86 processadores, ECX e EDX), e o restante são colocados na pilha da direita para a esquerda. A rotina de chamada aparece desses argumentos da pilha antes de retornar.Normalmente, /Gr diminui o time de execução.

Observação:

Tenha cuidado ao usar o __fastcall convenção de chamada para qualquer função escrita na linguagem de assembly embutido. O uso dos registros pode entrar em conflito com o uso do compilador.

Para C, a __fastcall convenção de nomeclatura usa o nome de função precedido por uma arroba ()@) seguido o dimensionar dos argumentos da função em bytes. Não é feita nenhuma conversão de maiúsculas.O compilador usa o modelo a seguir para a convenção de nomeclatura:

@function_name@number

Ao usar o __fastcall convenção de nomes, use os arquivos de inclusão padrão. Caso contrário, você obterá referências externas não resolvidas.

__stdcall especificações

A __stdcall argumentos da função são colocados na pilha da direita para a esquerda e a função chamada aciona esses argumentos da pilha antes de retornar.

Para C, a __stdcall convenção de nomeclatura usa o nome de função precedido por um sublinhado ( _ ) e seguido por uma arroba (@) e o dimensionar dos argumentos da função em bytes. Caso nenhuma conversão é executada.O compilador usa o modelo a seguir para a convenção de nomeclatura:

_functionname@number

x86 específicos

Essa opção não tem efeito sobre a decoração de nome de C++ métodos e funções.A menos que declarado sistema autônomo extern"C", funções e métodos C++ usam um esquema de decoração de nome diferente. Para obter mais informações, consulte Nomes decorados.

Para obter mais informações sobre convenções de chamada, consulte Calling Conventions.

participante x86 específicos

Para conjunto esta opção do compilador no ambiente de desenvolvimento do Visual Studio

  1. em aberto propriedade Páginas caixa de diálogo.Para obter detalhes, consulte:Como: Abrir o Projeto Propriedade Páginas.

  2. clicar no C/C++ pasta.

  3. clicar no Avançado página de propriedades.

  4. Modificar o Convenção de chamadapropriedade .

Para conjunto esta opção do compilador por meio de programação

Consulte também

Referência

Opções do compilador

Opções de compilador configuração