Instrucciones de llamada de función C ++ (anidadas) - registros
EnPreguntas frecuentes de C ++:
Asumiendo una implementación típica de C ++ que tiene registros y una pila, los registros y los parámetros se escriben en la pila justo antes de la llamada a g (), luego los parámetros se leen de la pila dentro de g () y se leen de nuevo para restaurar los registros mientras g () vuelve a f ().
con respecto a la llamada de función anidada
void f()
{
int x = /*...*/;
int y = /*...*/;
int z = /*...*/;
...code that uses x, y and z...
g(x, y, z);
...more code that uses x, y and z...
}
1 / ¿Son todas las implementaciones de C ++ con registros y stack? ¿Significa esto: la implementación depende de la arquitectura del compilador / procesador / computadora?
2 / ¿Qué es la secuencia de instrucciones (sin lenguaje ensamblador, solo el panorama general) cuando llamo?f()
? He leído cosas divergentes sobre este tema, y tampoco recuerdo que los registros se mencionen, sino que solo se apilan.
3 / ¿cuáles son las especificidades / puntos adicionales para subrayar cuando se trata de funciones anidadas?
Gracias