Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    151

    C++ - Uso della direttiva ifndef-

    Ciao a tutti, volevo togliermi qualche dubbio in merito all'uso della direttiva ifndef.

    Quando devo usarla con l'underscore davanti al nome del file di intestazione?
    Quando devo usarla senza underscore davanti al nome del file di intestazione?
    Come devo usarla se il mio file contiene degli underscore? Esempio: numeri_casuali.h

    Grazie.
    Saluti, Francesco

  2. #2
    La direttiva #ifndef, compila il codice solo se è non è stato definita la macro, in pratica se hai:
    codice:
    #ifndef MACRO
    int a = 5;
    #endif
    a verra "creato" dal compilatore solo se MACRO non è stata definita.
    Si usa nei file di intestazione, per far in modo che il suddetto file venga compilato una sola volta.
    codice:
    #ifndef __HEADER__
    #define __HEADER__
    
    /*Codice*/
    
    #endif
    Se questo header viene incluso più volte, esso viene compilato solo una volta, perchè dopo __HEADER__ sarà definito e quindi il compilatore salterà tutto il codice fino ad #endif.
    Il nome della macro può essere anche pippo, per quel che ne so'.


  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    151
    Ok, grazie mille.
    Mi rimangono ancora dei dubbi sul nome del file header.
    Alcune volte trovo:

    ifndef _HEADER_H

    altre invece:

    ifndef HEADER_H

    Non riesco a capire quando usare l'underscore davanti al nome del file header.

    Grazie,saluti

  4. #4
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    E' solo una questione stilistica del programmatore. Però sarebbe meglio evitare di mettere undescore davanti ad un macro.
    Il motivo è spiegato qui:

    http://www.eptacom.net/pubblicazioni/pub_it/iso_10.html

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    151
    Ok, grazie mille.
    Era la risposta che cercavo da tempo.
    Il link segnalato è molto interessante.

    Ancora grazie, saluti.

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.