Niekompletne typy
Niekompletny typ jest typem, który opisuje identyfikator, ale nie posiada informacji potrzebnych do określenia rozmiaru identyfikatora."Typem niekompletnym" może być:
Typ struktury, której elementy członkowskie nie zostały jeszcze określone.
Typ związku, którego elementy członkowskie nie zostały jeszcze określone.
Typ tablicy, której wymiar nie został jeszcze określony.
Typ pusty jest typem niekompletnym, który nie może być uzupełniony.Aby uzupełnić niekompletny typ, należy określić brakujące informacje.Następujące przykłady przedstawiają sposób tworzenia i uzupełnienia niekompletnych typów.
Aby utworzyć niekompletny typ struktury, należy zadeklarować typ struktury bez określania jej elementów członkowskich.W tym przykładzie, wskaźnik ps wskazuje na niekompletny typ struktury o nazwie student.
struct student *ps;
Aby uzupełnić niekompletny typ struktury, należy zadeklarować taki sam typ struktury później w tym samym zakresie z określonymi elementami członkowskimi, jak w
struct student { int num; } /* student structure now completed */
Aby utworzyć niekompletny typ tablicowy, należy zadeklarować typ tablicowy bez określania jego ilości powtórzeń.Na przykład:
char a[]; /* a has incomplete type */
Aby uzupełnić niekompletny typ tablicowy, należy zadeklarować tą samą nazwę później w tym samym zakresie, z określoną liczbą powtórzeń, jak w
char a[25]; /* a now has complete type */