/* modulo1.c * Linguaggi e Traduttori * Prof. Ing. Stefano Salvi * Lezione 2b * * Esercizio 1; * Scrivere un programma composto da due moduli: modulo1.c e modulo2.c. Si * scriva anche l'header file modulo2.h relativo al modulo due. * Il modulo 1 conterrà: * una variabile globale intera di nome 'variabile' inizializzata ad 1 * La funzione 'funzione' nella quale è dichiarata la variabile intera * locale 'variabile', inizializzata al valore 2. * Questa funzione stamperà il suo nome ed il valore della variabile * 'variabile' * La funzione 'main' che richiamerà la funzione 'funzione' e la funzione * 'esterna', che verrà definita in 'modulo2', della quale otterrà il * prototipo dal file 'modulo2.h' * Nel modulo2 invece troveremo: * la variabile statica intera 'variabile' inizializzata a 10 * La funzione statica 'funzione' che contiene un ciclo che * usa la variabile 'variabile' come indice, facendolo giungere a 20. * All'interno del ciclo avremo un 'if' che, se 'variabile' supera 15, * esegue il blocco che definisce una nuova 'variabile' inizializzata * a 100 e la stampa; dopo l'if verra' di nuovo stampata 'variabile'. * La funzione 'esterna' che richiamerà 'funzione' * Si potrà anche provare a definire nel file header 'modulo2.h' la variabile * intera 'doppia' e vedere che cosa succede. */ #include <stdio.h> /* Carica le dichiarazioni relative a 'modulo2' */ #include "modulo2.h" /* Variabile Globale */ int variabile = 1; /* Funzione globale */ void funzione () { /* Variablie locale - stesso nome e tipo della globale */ int variabile = 2; printf ("In 'funzione' la variabile vale %d\n",variabile); } /* Funzione principale */ int main () { printf ("All'inizio variabile (globale) vale %d\n",variabile); funzione (); // Richiama la funzione definita piu' sopra printf ("Adesso variabile (globale) vale %d\n",variabile); esterna (); // Riciama la funzione definita in 'modulo 2' printf ("Adesso variabile (globale) vale %d\n",variabile); return 0; }