16/12/16 14:34
Godrek
Frequento il corso di Programmazione I all'università e stiamo trattando il linguaggio C.
Per l'esattezza ci stiamo occupando di rappresentare (per ora soltanto graficamente) i cambiamenti di stato che avvengono durante l'esecuzione di un programma C attraverso le pile di frame.
int somma(int a, int b)
{
return a + b;
}
int main()
{
int x = 10;
int y = 20;
int result;
result = somma(x, y);
return 0;
}
Per come il professore ha rappresentato l'esecuzione di questo programma, viene dichiarata (ma non eseguita) la funzione somma (in quanto verrà eseguita una volta chiamata dalla funzione main), dopodiché viene eseguita la funzione main.
La mia domanda è perché la funzione somma viene dichiarata e la funzione main no?
So già che la funzione main è la funzione principale che viene chiamata automaticamente dal sistema operativo non appena il programma viene eseguito, ma perché quando chiamo la funzione somma dalla main la funzione somma è già stata dichiarata, mentre la funzione main viene chiamata dal S.O. senza essere prima dichiarata ma viene direttamente eseguita e le dichiarazioni che essa contiene vengono aggiunte nello stato durante la sua esecuzione.
Se non si capisce bene, posso postare la rappresentazione.
Per l'esattezza ci stiamo occupando di rappresentare (per ora soltanto graficamente) i cambiamenti di stato che avvengono durante l'esecuzione di un programma C attraverso le pile di frame.
int somma(int a, int b)
{
return a + b;
}
int main()
{
int x = 10;
int y = 20;
int result;
result = somma(x, y);
return 0;
}
Per come il professore ha rappresentato l'esecuzione di questo programma, viene dichiarata (ma non eseguita) la funzione somma (in quanto verrà eseguita una volta chiamata dalla funzione main), dopodiché viene eseguita la funzione main.
La mia domanda è perché la funzione somma viene dichiarata e la funzione main no?
So già che la funzione main è la funzione principale che viene chiamata automaticamente dal sistema operativo non appena il programma viene eseguito, ma perché quando chiamo la funzione somma dalla main la funzione somma è già stata dichiarata, mentre la funzione main viene chiamata dal S.O. senza essere prima dichiarata ma viene direttamente eseguita e le dichiarazioni che essa contiene vengono aggiunte nello stato durante la sua esecuzione.
Se non si capisce bene, posso postare la rappresentazione.
aaa