Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente bannato
    Registrato dal
    Oct 2010
    Messaggi
    1,219

    [c++]Includere librerie

    Normalmente una libreria si include con la direttiva #include , ma ho visto vari esempi che dicono come sia possibile, per evitare di includere più di una volta una libreria, usare le direttive #ifndef,#define e #endif.
    Ad esempio se si vuole evitare di includere una libreria due volte nei vari file di intestazione, si dichiara:
    codice:
    #ifndef TIME1_H
    #define TIME1_H
    #endif
    Il problema è che questo sistema non funziona per niente !
    Se provo a fare:
    codice:
    #ifndef IOSTREAM_H
    #define IOSTREAM_H
    #endif
    Mi sembra che nemmeno chi l' ha scritto abbia le idee chiare su questo.
    Chiaritemi le idee ...

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Per cominciare, quelle non sono librerie. Sono semplici file header (include file).

    In secondo luogo, dovresti chiarire il problema ... perché dici che "questo sistema non funziona per niente" ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente bannato
    Registrato dal
    Oct 2010
    Messaggi
    1,219
    Perchè se creo un semplicissimo file hello world dove invece di usare la direttiva #include faccio così:
    codice:
    #define IOSTREAM_H
    
    int main (int argc, const char **argv)
    {
        cout << "Hello world !" << endl;
        return 0;
    }
    Mi da errore di compilazione :
    codice:
    /Users/ramy/Documents/C++/Prova/main.cpp|10|error: 'cout' was not declared in this scope|

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ma cosa c'entra questo codice?

    Forse non hai capito bene a cosa serve quel tipo di scrittura ...

    Nel tuo codice non c'è nessun include ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it L'avatar di Freax
    Registrato dal
    Jul 2006
    Messaggi
    460
    Originariamente inviato da ramy89
    Perchè se creo un semplicissimo file hello world dove invece di usare la direttiva #include faccio così:
    codice:
    #define IOSTREAM_H
    
    int main (int argc, const char **argv)
    {
        cout << "Hello world !" << endl;
        return 0;
    }
    Mi da errore di compilazione :
    codice:
    /Users/ramy/Documents/C++/Prova/main.cpp|10|error: 'cout' was not declared in this scope|
    quello è un define ...

  6. #6
    No, lì devi usare #include

    codice:
    #ifndef TIME1_H
    #define TIME1_H
    
    //codice da includere
    
    #endif
    Questo lo inserisci nel codice che deve essere incluso

  7. #7

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.