「has incomplete type」という検索フレーズは、ここのところ毎日のように目にします。おそらくは、GCCを使用していて、コンパイルエラーまたは警告が出たために、その内容を調べたかったのでしょうが、私が運営している姉妹サイト群の中で、この検索フレーズに該当する部分では全く別の内容を書いています。 というわけで、今回はこの「has incomplete type」を取り上げることにします。"incomplete type"というのは「不完全型」の意味で、次に挙げる3種類のものがあります。 struct A;のようにタグ名だけを宣言した構造体、共用体、列挙体(およびC++ではクラス)要素数を指定しない配列型void型これら不完全型のポインタ(C++では参照も)を扱うことは可能ですが、不完全型のオブジェクトを宣言したり、不完全型のオブジェクトを要求するような記述を行うことはできません