Compartilhar via


Argumento passando e convenções de nomenclatura

Específicos do Microsoft

Todos os argumentos são ampliados para 32 bits quando eles são passados.Valores de retorno também são ampliados para 32 bits e retornados no registrador EAX, exceto para estruturas de 8 bytes, que são retornados no par de registro de EDX:EAX.Estruturas maiores são retornadas no registrador EAX como ponteiros para ocultas retornar estruturas.Parâmetros são colocados na pilha da direita para esquerda.Estruturas que não são os PODs não serão retornadas em registros.

O compilador gera prólogo e código de epilog para salvar e restaurar o ESI, EDI, EBX e EBP registra, se forem usados na função.

ObservaçãoObservação

Quando uma struct, união ou classe é retornado de uma função por valor, todas as definições do tipo precisam ser o mesmo, caso contrário o programa pode falhar em tempo de execução.

Para obter informações sobre como definir seu próprio código de prólogo e epilog de função, consulte Nua chamadas de função.

As seguintes convenções de chamada são suportadas pelo compilador Visual C/C++.

Keyword

Limpeza de pilha

Passagem por parâmetro

_ _ cdecl

Chamador

Empurra parâmetros na pilha, na ordem inversa (direita para esquerda)

__clrcall

n/d

Carregar parâmetros na pilha de expressão do CLR em ordem (da esquerda para a direita).

__stdcall

Receptor

Empurra parâmetros na pilha, na ordem inversa (direita para esquerda)

__fastcall

Receptor

Armazenados em registros, então enviados na pilha

__thiscall

Receptor

Empurrada na pilha; Isso ponteiro armazenado em ECX

Para obter informações relacionadas, consulte Obsoletos convenções de chamada.

Finalizar específico

Consulte também

Referência

Convenções de chamada