Perché i libri dicono "il compilatore alloca lo spazio per le variabili in memoria". Non è l'eseguibile che lo fa? Voglio dire, per esempio, se scrivo il seguente programma,Perché i libri dicono "il compilatore alloca lo spazio per le variabili in memoria"?
#include <iostream>
using namespace std;
int main()
{
int foo = 0;
cout<<foo;
return 0;
}
e compilarlo, e ottenere un file eseguibile (lascia che sia program.exe), ora, se corro program.exe, questo file eseguibile stesso comando di allocare un po 'di spazio per la variabile foo. Non è vero? Per favore, spiega perché i libri continuano a dire "il compilatore lo farà ... fallo", mentre in realtà l'eseguibile compilato lo fa.
Aggiungendo un'altra domanda correlata a questa domanda, perché sizeof
ha chiamato un operatore di compilazione? Non è in realtà un operatore di runtime?
è un cattivo esempio. 'foo' non è usato e verrà eliminato durante la compilazione. – Abyx
@Abyx Man, prova a capire la mia domanda. L'attenzione non è se la var è usata. Ad ogni modo, ho modificato il programma per te. –
uomo, in realtà nulla è cambiato con quella modifica. =) – Abyx