PDA

Visualizza la versione completa : [C++] E' meglio un #define o un const?


XWolverineX
30-09-2005, 22:39
Come da titolo.

Ho trovato solo un vantaggio in const: il fatto di poter eludere la sua sola lettura utilizzando const_cast...
ma per quanto riguarda prestazioni o altro, chiedo a voi!

Gil Mour
01-10-2005, 01:21
Con la define definisci a tempo di compilazione
Con const definisci a tempo di esecuzione, o caricamento

Per quanto riguarda le prestazioni a mio parere con la define ci guadagni qualcosina in termini di utilizzo di memoria, probabilmente anche sul tempo di esecuzione.

Il mio non Ŕ assolutamente un parere autorevole ma scaturisce da un ragionamento logico:
Memoria:
una const deve essere allocata, una define no perchŔ Ŕ un operando compreso nell'istruzione e viene allocato con questa solo al momento dell'esecuzione (in realtÓ un po prima)
Tempo:
se la variabile Ŕ un numero, probabilmente nel caso di operazioni aritmetiche non cambia niente, dato che il valore va trasferito nell'alu e il fatto che lo si prenda da una parte o da un'altra cambia poco
in effetti credo che cambi poco o niente in termini di tempo

Il tutto ovviamente ha senso quando un programma fa migliaia/milioni di accessi a questa variabile, se fai 100 sottrazioni non ti cambia niente

:ciauz:

XWolverineX
01-10-2005, 11:55
Infatti era piu' una curiositÓ che un consiglio

Loading