C言語で「parameter NNN (‘xxx’) has incomplete type」というエラーが表示される場合、その関数の引数の型が完全でないことが原因です。
例えば、次のような関数が定義されている場合
void print_struct(struct s s) { printf("x: %d, y: %d\n", s.x, s.y); }
この関数は、構造体struct s
を受け取り、その中のx
とy
の値を表示するものです。
しかし、次のように呼び出すと、「parameter NNN (‘xxx’) has incomplete type」というエラーが表示されます。
struct s; print_struct(s);
このような場合、構造体struct s
の定義がされていません。
そのため、関数を正しく呼び出すには、構造体の定義が必要です。
struct s { int x; int y; }; struct s s = {1, 2}; print_struct(s);
このように、構造体の定義を行い、完全な型を持つ変数を渡して関数を呼び出すことで、「parameter NNN (‘xxx’) has incomplete type」というエラーが表示されなくなります。
コメント