Tipi incompleti
Un tipo incompleto è un tipo che descrive un identificatore ma non dispone delle informazioni necessarie per determinare la dimensione dell'identificatore.“Un tipo incompleto„ può essere:
Membri di un tipo di struttura di cui non è stata ancora specificata.
Membri di un tipo di unione di cui non è stata ancora specificata.
Una dimensione del tipo di matrice i cui non è stata ancora specificata.
Il tipo void è un tipo incompleto che non può essere completata.per completare un tipo incompleto, specificare le informazioni mancanti.Negli esempi seguenti viene illustrato come creare e completare i tipi incompleti.
Per creare un tipo incompleto della struttura, dichiarare un tipo di struttura senza specificare i relativi membri.in questo esempio, ps punti del puntatore a un tipo incompleto della struttura chiamato student.
struct student *ps;
Per completare un tipo incompleto della struttura, dichiarare successivamente lo stesso tipo di struttura nello stesso ambito con i relativi membri specificati, come in
struct student { int num; } /* student structure now completed */
Per creare un tipo di matrice incompleto, dichiarare un tipo di matrice senza specificare il numero di ripetizione.Di seguito è riportato un esempio:
char a[]; /* a has incomplete type */
Per completare un tipo di matrice incompleto, dichiarare successivamente lo stesso nome nello stesso ambito con il relativo conteggio di ripetizione specificato, come in
char a[25]; /* a now has complete type */