Niekompletne typy
Niekompletny typ to typ , który opisuje identyfikator, ale nie zawiera informacji potrzebnych do określenia rozmiaru identyfikatora. Niekompletny typ może być:
Typ struktury, którego składowe nie zostały jeszcze określone.
Typ unii, którego składowe nie zostały jeszcze określone.
Typ tablicy, którego wymiar nie został jeszcze określony.
Typ void
jest niekompletnym typem, którego nie można ukończyć. Aby ukończyć niekompletny typ, określ brakujące informacje. W poniższych przykładach pokazano, jak utworzyć i ukończyć niekompletne typy.
Aby utworzyć niekompletny typ struktury, zadeklaruj typ struktury bez określania jej elementów członkowskich. W tym przykładzie
ps
wskaźnik wskazuje niekompletny typ struktury o nazwiestudent
.struct student *ps;
Aby ukończyć niekompletny typ struktury, zadeklaruj ten sam typ struktury później w tym samym zakresie z określonymi elementami członkowskimi, co w
struct student { int num; } /* student structure now completed */
Aby utworzyć niekompletny typ tablicy, zadeklaruj typ tablicy bez określania liczby powtórzeń. Na przykład:
char a[]; /* a has incomplete type */
Aby ukończyć niekompletny typ tablicy, zadeklaruj tę samą nazwę w dalszej części tego samego zakresu z określoną liczbą powtórzeń, co w
char a[25]; /* a now has complete type */