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!
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!
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
![]()
Infatti era piu' una curiosità che un consiglio