不完全な型
"不完全な型" とは、識別子を記述する型でありながら、識別子のサイズを決定するために必要な情報が欠けている型です。 不完全な型には次のようなものがあります。
メンバーがまだ指定されていない構造体型。
メンバーがまだ指定されていない共用体型。
次元がまだ指定されていない配列型。
void
型は、完全にすることのできない不完全な型です。 不完全な型を完全にするには、欠けている情報を指定します。 次の例では、不完全な型を作成する方法と完全にする方法について説明します。
不完全な構造体型を作成するには、メンバーを指定しないで構造体型を宣言します。 この例では、
ps
ポインターはstudent
という不完全な構造体型を指しています。struct student *ps;
不完全な構造体型を完全にするには、後で同じスコープ内で、メンバーを指定して同じ構造体型を宣言します。
struct student { int num; } /* student structure now completed */
不完全な配列型を作成するには、繰り返し回数を指定しないで配列型を宣言します。 次に例を示します。
char a[]; /* a has incomplete type */
不完全な配列型を完全にするには、後で同じスコープ内で、繰り返し回数を指定して同じ名前を宣言します。
char a[25]; /* a now has complete type */