Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    [c] Inclusione strutture più file.

    Ciao! Ho il seguente problema con delle strutture dati che sono presenti in due header file diversi, ma all'interno di ogni struttura è presente come campo l'altra struttura.
    codice:
    #define A 
    struct a { 
       struct b * c; 
    };

    codice:
    #define B
    struct b { 
       struct a * c; 
    };
    Come posso risolvere?
    Usare pragma ONCE non mi va bene...

  2. #2
    Prova:
    codice:
    #define A 
    struct b;
    struct a { 
       struct b * c; 
    };

    codice:
    #define B
    struct a;
    struct b { 
       struct a * c; 
    };
    lolide
    Java Programmer

    Informati

  3. #3
    Ma questo discorso non vale se i campi non sono dei puntatori?

  4. #4
    Aspetta forse non ho capito il problema... hai un problema di compilazione?
    lolide
    Java Programmer

    Informati

  5. #5
    Si, mi dice che il dato non è noto...

  6. #6
    Originariamente inviato da PeppePes88
    Si, mi dice che il dato non è noto...
    Ecco, allora la mia soluzione funzionerebbe.
    Quelle dichiarazioni fanno capire al compilatore che "da qualche parte" esiste la struttura che sta cercando, è un prototipo della struttura (come quelli che richiedono le funzioni e le classi).
    lolide
    Java Programmer

    Informati

  7. #7
    Si, infatti! Quindi posso solo dichiarare dei puntatori a quella struttura, ma non posso includere strutture in un altra struttura perchè non sa quanto spazio allocare per quella struttura...

  8. #8
    Originariamente inviato da PeppePes88
    Si, infatti! Quindi posso solo dichiarare dei puntatori a quella struttura, ma non posso includere strutture in un altra struttura perchè non sa quanto spazio allocare per quella struttura...
    Si. Puoi allocare solo puntatori ma non oggetti sullo stack (perchè infatti non ne conosce la dimensione).
    lolide
    Java Programmer

    Informati

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.