Neúplné typy
Nekompletní typ je typ, který popisuje identifikátor, ale neobsahuje informace potřebné k určení jeho velikosti."Nekompletní 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 nekompletním typem, 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ázvem student.
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 */