El paso y convenciones de nomenclatura de argumento
Específicos de Microsoft
Todos los argumentos se amplían a 32 bits cuando se pasan.Los valores devueltos también se amplían a 32 bits y se devuelven en el registro de EAX, a excepción de 8 estructuras de bytes, que se devuelven en el EDX: Pares de registro de EAX.Estructuras más grandes se devuelven en el registro de EAX como estructuras return ocultas de punteros.Los parámetros se insertan en la pila de derecha a izquierda.Las estructuras que no son PODs no se devuelvan en registros.
El compilador genera código de prólogo y de epílogo para guardar y restaurar los registros de ESI, de EDI, de EBX, y EBP, si se utilizan en la función.
[!NOTA]
Cuando un struct, unión, o una clase es devuelto de una función por valor, todas las definiciones de tipo sean iguales, el programa pueden producir errores en tiempo de ejecución.
Para obtener información sobre cómo definir el propio código de prólogo y de epílogo de función, vea llamadas de función descubiertas.
El compilador de Visual C/C++ admiten las convenciones de llamada siguientes.
Palabra clave |
Limpieza de pila |
El paso de parámetros |
---|---|---|
Llamador |
Inserta los parámetros de la pila, en orden inverso (de derecha a izquierda) |
|
no disponible |
Cargue los parámetros sobre pila de expresión de CLR en el orden (de izquierda a derecha). |
|
destinatario |
Inserta los parámetros de la pila, en orden inverso (de derecha a izquierda) |
|
destinatario |
almacenado en los registros, entonces presionado en pila |
|
destinatario |
insertado en pila; puntero de this almacenado en ECX |
Para obtener información relacionada, vea Convenciones de llamada obsoletos.
Específico de FINAL