Quería haceros un par de preguntas a ver si me despejáis un poco el "temporal".
Hablo de C++, aunque supongo que en cualquier otro lenguaje sera más o menos igual excepto si las variables se meten en los registros (que no se cuando pasa), supongo que será ASM o depende de la CPU.
Si por ejemplo hago una variable local en una función:
int Suma(int A , int B){
int temp = a+ b;
return temp;}
Los parametros (A y B) y la variable temp, estarán siempre en la misma posición de memoria?¿, o sea estarán en el el Stack, pero si las volvierá a llamar en otra ejecución del programa estarían en el mismo sitio(Dirección del Stack).
Por otro lado de que depende y quien decide el tamaño del Stack (Es el S.O)?¿, es igual para todos los programas?¿ varia el tamaño dependiendo el programa, o es siempre una porción de tamaño fijo?¿. Físicamente dónde está, dentro de la CPU, en la RAM(no creo porque si no el acceso no sería más rápido que en el HEAP).
Gracias.
Stack y variables Locales.
- mentalthink
- Amiga 2500
- Mensajes: 2840
- Registrado: 11 Abr 2010, 15:06
- Gracias dadas: 45 veces
- Gracias recibidas: 14 veces
- zup
- Amiga 2500
- Mensajes: 2970
- Registrado: 04 Sep 2009, 20:07
- Sistema Favorito: Spectrum 16Kb/48Kb
- primer_sistema: Spectrum 16Kb/48Kb
- consola_favorita: Nintendo DS/3DS
- Primera consola: Nintendo GameBoy
- Ubicación: Navarra
- Gracias dadas: 68 veces
- Gracias recibidas: 326 veces
- Contactar:
Re: Stack y variables Locales.
No, la posición variará dentro del área del stack. La posición exacta va en función de SP (por ejemplo, SP+2), pero no tienes garantías de que el valor de SP siempre sea el mismo al llamar a la función.
El tamaño del stack lo define el programador, si no lo defines el compilador asigna uno por defecto (salvo en ensamblador, que lo tienes que definir explícitamente). Y el stack va en la RAM, por lo que (en casi todos los sistemas) va a ser el sistema operativo el que defina su posición.
El tamaño del stack lo define el programador, si no lo defines el compilador asigna uno por defecto (salvo en ensamblador, que lo tienes que definir explícitamente). Y el stack va en la RAM, por lo que (en casi todos los sistemas) va a ser el sistema operativo el que defina su posición.
I have traveled across the universe and through the years to find Her. Sometimes going all the way is just a start.
Además vendo cosas!
Además vendo cosas!
- mentalthink
- Amiga 2500
- Mensajes: 2840
- Registrado: 11 Abr 2010, 15:06
- Gracias dadas: 45 veces
- Gracias recibidas: 14 veces
Re: Stack y variables Locales.
Gracias zup, súper intersante todo lo que me has respondido.
Gracias!!!
Gracias!!!
¿Quién está conectado?
Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 8 invitados