Neúplné typy
Neúplný typ je typ , který popisuje identifikátor, ale nemá informace potřebné k určení velikosti identifikátoru. Neúplný typ může být:
Typ struktury, jejíž členy ještě nebyly určeny.
Typ sjednocení, jehož členy ještě nebyly určeny.
Typ pole, jehož rozměry ještě nebyly určeny.
Typ void
je neúplný typ, který nelze dokončit. Chcete-li dokončit nekompletní typ, zadejte chybějící informace. Následující příklad ukazuje, jak vytvořit a dokončit nekompletní typy.
Chcete-li vytvořit nekompletní typ struktury, deklarujte typ struktury bez zadání jejích členů. V tomto příkladu ukazatel
ps
ukazuje na nekompletní typ struktury s názvemstudent
.struct student *ps;
Chcete-li dokončit nekompletní typ struktury, deklarujte dále ve stejném oboru stejný typ struktury se zadanými členy, například
struct student { int num; } /* student structure now completed */
Chcete-li vytvořit nekompletní typ pole, deklarujte typ pole bez určení počtu opakování. Příklad:
char a[]; /* a has incomplete type */
Chcete-li dokončit nekompletní typ pole, deklarujte stejný název dále ve stejném oboru se zadaným počtem opakování, například
char a[25]; /* a now has complete type */