Funzionamento di #define

di Anonimizzato21872 il
4 risposte
Ciao,
volevo dei chiarimenti sull'utilizzo di #define. Se non ho capito male è una sorta di costante, ma in cosa si differenzia? che usi specifici può avere? Ho cercato un po' definizioni in internet ma non hanno chiarito molto.
Grazie in anticipo

4 Risposte

  • Il punto essenziale per capire é che si tratta di una direttiva del preprocessore, ovvero interviene in una fase che precede la compilazione.
  • candaluar ha scritto:


    Il punto essenziale per capire é che si tratta di una direttiva del preprocessore, ovvero interviene in una fase che precede la compilazione.
    Ma poi si comporta come una costante? Se io scrivo all'inizio del programma sotto le librerie:
    #define N 5
    lui ad ogni istanza di N assocerà l'intero 5?
    Grazie
  • lui ad ogni istanza di N assocerà l'intero 5?
    Qui non ci sono istanze e non ci sono associazioni.
    Il preprocessore sostituisce tutte le "N" che trova nel resto del sorgente, dopo la #define, e lo sostituisce con 5: un po' come il trova & sostituisci di un qualsiasi editor di testo.
    Mi pare che qui sia descritto abbastanza bene http://www.fe.infn.it/u/spizzo/prog09/lezioni04/direttive_def.html ma comunque in un qualsiasi testo di linguaggio C è spiegato il funzionamento del preprocessore.
  • In soldoni, scrivendo una cosa così...
    #define PINCOPALLA  23
    
    int main() {
        int numero = PINCOPALLA;
        int doppio = numero + PINCOPALLA;
        
        printf( "Il triplo di %d è %d!!!\n\n", PINCOPALLA, 3*PINCOPALLA );
        
        getchar();
        return 0;
    }
    Il compilatore "vede" una cosa così...
    int main() {
        int numero = 23;
        int doppio = numero + 23;
        
        printf( "Il triplo di %d è %d!!!\n\n", 23, 3*23 );
        
        getchar();
        return 0;
    }
    ...e si comporta di conseguenza.
Devi accedere o registrarti per scrivere nel forum
4 risposte