/* File: stack.c */ /* Time-stamp: "2001-03-26 16:01:36 calvanes" */ /* Scopo: esemplificazione dei concetti di - pila dei record di attivazione e - tempo di vita di una variabile */ #include //prototipi delle funzioni (procedure) usate void A (int); void B (int); int main(void) { int s; /* m1 */ printf("Sono il main()\n"); /* m2 */ printf("\nInserisci un intero: "); /* m3 */ scanf("%d", &s); /* m4 */ printf("\nOra chiamo la funzione A(), con parametro ATTUALE pari a %d\n",s); system("PAUSE"); /* m5 */ A(s); /* m6 */ printf("\nSono di nuovo il main()\n"); system("PAUSE"); /* m7 */ return 0; } void B(int q) { /* b1 */ printf("\nSono la funzione B().\nIl mio parametro FORMALE q passato dalla funzione A() vale %d\n", q); system("PAUSE"); /* b2 */ return; } void A (int p) { int loc; /* a1 */ printf("\nSono la funzione A().\nIl mio parametro FORMALE p passato dal main vale %d\n", p); /* a2 */ printf("\nInserisci un intero: "); /* a3 */ scanf("%d", &loc); /* a4 */ printf("\nOra chiamo la funzione B(), con parametro ATTUALE pari a %d\n", loc); system("PAUSE"); /* a5 */ B(loc); /* a6 */ printf("\nSono di nuovo la funzione A()\n"); system("PAUSE"); /* a7 */ return; } /* output Sono main() Inserisci un intero: 5 Ora chiamo A(), con parametro attuale pari a 5 Sono A(). Il mio parametro formale p vale 5 Inserisci un intero: 8 Ora chiamo B(), con parametro attuale pari a 8 Sono B(). Il mio parametro formale q vale 8 Sono di nuovo A() Sono di nuovo main() */