Passage et conventions d'affectation de noms d'argument

Spécifique à Microsoft

Tous les arguments sont élargis à 32 bits lorsqu'ils sont passés.Les valeurs de retour sont également élargies à 32 bits et retournées dans le registre d'EAX, sauf 8 structures d'octets, qui sont retournées dans l'EDX : paires de registre d'EAX.De plus grandes structures sont retournées dans le registre d'EAX comme des pointeurs vers les structures de retour masquées.Les paramètres font l'objet d'un push dans la pile de droite à gauche.Les structures qui ne sont pas des cosses ne seront pas retournées dans les registres.

Le compilateur génère le code du prologue et d'épilogue pour enregistrer et restaurer les registres d'ESI, d'EDI, d', et EBX EBP, s'ils sont utilisés dans la fonction.

[!REMARQUE]

Lorsqu'une structure, une union, ou une classe est retourné depuis une fonction par valeur, toutes les définitions de type doivent être identiques, sinon le programme peuvent échouer au moment de l'exécution.

Pour plus d'informations sur la définition de vos propres prologues et épilogue de fonction du code, consultez l' appels de fonction naked.

Les conventions d'appel suivantes sont prises en charge par le compilateur de Visual C/C++.

Mot clé

nettoyage de pile

Passage de paramètres

__cdecl

appelant

Effectue des paramètres sur la pile, dans l'ordre inverse (de droite à gauche)

__clrcall

N/A

Paramètres de charge dans la pile d'expression du CLR dans la commande (de gauche à droite).

__stdcall

appelé

Effectue des paramètres sur la pile, dans l'ordre inverse (de droite à gauche)

__fastcall

appelé

Stocké dans les registres, alors l'objet d'un push sur la pile

__thiscall

appelé

Type push dans la pile ; pointeur de cela stocké dans ECX

Pour plus d'informations, consultez conventions d'appel obsolètes.

détail de FIN

Voir aussi

Référence

Conventions d'appel