Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,563

    C++ - E' meglio un #define o un const?

    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!

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    698
    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


  3. #3
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,563
    Infatti era piu' una curiosità che un consiglio

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.