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 |
---|---|---|
appelant |
Effectue des paramètres sur la pile, dans l'ordre inverse (de droite à gauche) |
|
N/A |
Paramètres de charge dans la pile d'expression du CLR dans la commande (de gauche à droite). |
|
appelé |
Effectue des paramètres sur la pile, dans l'ordre inverse (de droite à gauche) |
|
appelé |
Stocké dans les registres, alors l'objet d'un push sur la pile |
|
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