prof. Nunzio Brugaletta | Programmazione e linguaggio C |
Nel programma visto precedentemente i valori di base e altezza sono costanti, dato che non variano durante l'esecuzione del programma. Si sarebbe potuto scrivere direttamente
area = 3 * 7;
Quando un certo valore viene utilizzato in modo ricorrente è opportuno rimpiazzarlo con un nome simbolico; per farlo è necessario definire, all'inizio del programma, mediante la direttiva define un identificatore di costante in corrispondenza del valore desiderato.
#define BASE 3
Grazie a questa direttiva è possibile utilizzare, all'interno del programma, BASE al posto del valore intero 3.
La stessa definizione di costante implica che il suo valore non può essere modificato: BASE può essere utilizzata in un'espressione a patto che su di essa non venga mai effettuato un assegnamento.
Il programma del paragrafo precedente, con l'utilizzazione delle costanti, viene così modificato:
#include <stdio.h> #define BASE 3 #define ALTEZZA 7 /* Calcolo area rettangolo */ main(){ int area; area = BASE * ALTEZZA; printf("Base: %d\n",BASE); printf("Altezza: %d\n",ALTEZZA); printf("Area: %d\n",area); }
Il nome di una costante può essere qualsiasi identificatore valido in C, comunque si è scelto di utilizzare esclusivamente caratteri maiuscoli per le costanti e caratteri minuscoli per le variabili, per distinguere chiaramente le une dalle altre. Le costanti BASE e ALTEZZA vengono considerate di tipo intero in quanto il loro valore è costituito da numeri senza componente frazionaria.
Invece di utilizzare direttamente i valori, è consigliabile far uso degli identificatori di costante che sono descrittivi e quindi migliorano la leggibilità dei programmi. Inoltre, se ci si rende conto che un certo valore utilizzato più volte deve essere cambiato, nella prima ipotesi, è necessario ricercalo con attenzione all'interno del testo e modificarlo dov'è il caso, nella seconda ipotesi è sufficiente intervenire sulla sua definizione. Per esempio, per fare in modo che il programma precedente calcoli l'area del rettangolo con base 102 e altezza 34, è sufficiente modificare le linee dov'è presente define.
#define BASE 102 #define ALTEZZA 34
In sintesi, l'uso delle costanti migliora due parametri classici di valutazione dei programmi: flessibilità e possibilità di manutenzione.
La define è in realtà una macroistruzione (brevemente, macro) del precompilatore C che offre altre possibilità oltre a quella di definire delle costanti.
http://ennebi.solira.org | ennebi@solira.org |