/* 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 <stdio.h> void B(int q) { /* b1 */ printf("Sono B(). Il mio parametro q vale %d\n", q); /* b2 */ return; } void A (int p) { int loc; /* a1 */ printf("Sono A(). Il mio parametro p vale %d\n", p); /* a2 */ printf("Inserisci un intero: "); /* a3 */ scanf("%d", &loc); /* a4 */ printf("Ora chiamo B(), con parametro attuale pari a %d\n", loc); /* a5 */ B(loc); /* a6 */ printf("Sono di nuovo A()\n"); /* a7 */ return; } int main(void) { int s; /* m1 */ printf("Sono main()\n"); /* m2 */ printf("Inserisci un intero: "); /* m3 */ scanf("%d", &s); /* m4 */ printf("Ora chiamo A(), con parametro attuale pari a %d\n",s); /* m5 */ A(s); /* m6 */ printf("Sono di nuovo main()\n"); /* m7 */ return 0; } /* output Sono main() Inserisci un intero: 5 Ora chiamo A(), con parametro attuale pari a 5 Sono A(). Il mio parametro p vale 5 Inserisci un intero: 8 Ora chiamo B(), con parametro attuale pari a 8 Sono B(). Il mio parametro q vale 8 Sono di nuovo A() Sono di nuovo main() */