Barninga Z
a- a+

Le costanti simboliche

LE COSTANTI

Le costanti simboliche 

E' di recente diffusione, tra i programmatori C, latendenza a limitare quanto più possibile l'usodelle costanti manifeste, in parte proprio per evitare lapossibilità di effetti collaterali, ma anche perconsiderazioni relative alla logica della programmazione: lecostanti manifeste creano problemi in fase di debugging[34], poiché non è possibilesapere dove esse si trovino nella memoriadell'elaboratore (come tutte le costanti, non hannoindirizzo conoscibile); inoltre non sempre è possibiledistinguere a prima vista una costante manifesta da unavariabile, se non rintracciando la #define(l'uso delle maiuscole e minuscole è libero tantonelle costanti manifeste quanto nei nomi di variabili,pertanto nulla garantisce che un simbolo espresso interamentecon caratteri maiuscoli sia effettivamente una costantemanifesta). 

Il C consente di definire delle costanti simbolichedichiarandole come vere e proprie variabili, ma anteponendoal dichiaratore di tipo la parola chiave const. Eccoun paio di esempi: 

const int  ggAnnoFin = 360;    const char return = 0x0D;

E' facile vedere che si tratta di dichiarazioni del tuttoanaloghe a quelle di variabili; tuttavia la presenza diconst forza il compilatore a considerare costante ilvalore contenuto nell'area di memoria associata al nomesimbolico. Il compilatore segnala come illegale qualsiasitentativo di modificare il valore di una costante, pertantoogni costante dichiarata mediante const deve essereinizializzata contestualmente alla dichiarazionestessa. 

const int unIntCostante = 14;    ....    unIntCostante = 26;    //errore: non si puo' modificare il valore di una costante

Il principale vantaggio offerto da const èche risulta possibile accedere (in sola lettura) al valoredelle costanti così dichiarate mediantel'indirizzo delle medesime (come accade per tutte le areedi memoria associate a nomi simbolici): ancora una voltarimandiamo gli approfondimenti alla trattazione deipuntatori. 

Infine, le costanti simboliche possono essere gestite daidebugger proprio come se fossero variabili. 

 



Ti potrebbe interessare anche

commenta la notizia