Tengo una pregunta sobre el siguiente código C:¿Cuándo se asigna espacio de pila para las variables locales?
void my_function()
{
int i1;
int j1;
// Do something...
if (check_something())
{
int i2;
int j2;
// Do something else...
}
// Do some more stuff...
}
¿Hay garantías sobre cuándo espacio de pila se asigna/desasignado de i2 y J2, o depende del compilador? Esperaría que el puntero de la pila se ajuste cuando i2 y j2 entren en el alcance y se ajusten cuando se salgan del alcance, pero luego pensó que algunos compiladores podrían simplemente "optimizar" todo y tener en cuenta las variables en un ámbito anidado cuando la función se ingresa primero.
Sé que puedo ver el código de ensamblado generado por mi compilador, pero me preguntaba si la implementación puede dejarse al compilador.
Gracias!
Considere también que las variables se pueden asignar a los registros ... – unwind