Duda sobre la pila

B

Buenas, estoy estudiando Programación en C y una de las preguntas que suelen caer todos los años en un tipo test es que qué se guarda en la pila...

Y revisando mis apuntes veo que pone, se guardan variables, constantes y parámetros actuales.

Mi duda es, ¿los parámetros formales tb se guardan en la pila?

Y para rematar, la afirmación de que en la pila se guarda todo menos las variables globales, ¿es cierta?

dagavi

Si los parámetros formales son los parámetros con los que se llama a una función, entonces si.

LOc0

Los parámetros que se guardan en la pila de llamada son los formales, es decir, los que usa la subrutina (que son una copia de los parámetros actuales pertenecientes a la rutina principal).

spoiler

Salu2 ;)

0buS

joder te hacen los examenes de c en tipo test? Ya me lo podrian haber hecho a mi así y no picando código xD.

NeB1

opino lo que #4 xDDD que no veas como jode pasarte 4 horas escribiendo un programa en papel xDD

creo, que las variables globales se guardan en los registros del procesador, pero no lo tengo muy claro xD

GamA

Amén a #4 y #5 ... Ojalá me hubieran hecho los exámenes de programación tipo test...

Claro que entonces mi nivel de programación sería bte bajo xD. Casi mejor prefiero los de picar código, si :o

dagavi

#5 Como se van a guardar las variables en el registro.

Con que te haga:

int a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z;

Necesitarías 26 registros solo para esas variables, sin contar las que se declaran por includes, que son unas cuantas.

Buffoncete

Eso en realidad lo decide el compilador, si se guarda en la memoria virtual asignada a la aplicación o en su defecto en los registros, esto depende cuanto es usada esa variable para saber si merece la pena que vaya corriendo en los diferentes niveles de caché que tiene la RAM o directamente dejarla en un registro.

Hablo desde el punto de vista GNU-GCC, no se como se lo montará CLI para tomar estas decisiones.


Para la pila, lo mejor es que te hubieran enseñado antes lo mínimo de Ensamblador, cuando yo estudiaba en la FIB en EC1 lo hicieron y lo que se guarda en la pila te queda más claro, que ya te han contestado por arriba ;)

Usuarios habituales