• 締切済み

ライブラリで宣言した構造体が認識されない

ライブラリのヘッダファイル complex.h #ifndef COMPLEX_H #define COMPLEX_H #ifdef __cplusplus extern "C"{ #endif typedef struct{ double real,imaginary; } COMPLEX; extern int complex_error_code; extern COMPLEX add_complex(COMPLEX a ,COMPLEX b); #ifdef __cplusplus } #endif #endif ライブラリのソースファイル complex.c #include <stdio.h> #include <math.h> #include "complex.h" int complex_error_code = 0; COMPLEX add_complex(COMPLEX a ,COMPLEX b) { COMPLEX c; c.real=a.real+b.real; c.imaginary=a.imaginary+b.imaginary; return c; } 動作確認のアプリケーションファイル test_complex.c #include <stdio.h> int main(void) { COMPLEX z,z1,z2; z1={1.0,1.0}; z2={2.0,2.0}; z=add_complex(z1,z2); printf("%lf+%lfi",z.real,z.imaginary); return 0; } COMPLEX undeclared (first use in this function) というエラーメッセージが出て、宣言したはずの構造体COMPLEXが認識されていないようなのですが、理由がわかりません。 よろしくお願いします。

みんなの回答

回答No.1

test_complex.cで #include "complex.h" してないから「COMPLEXは未定義(この関数で初めて使われた)」って怒られる。 #includeを一切しないで、いきなり   FILE *fp; って宣言したら FILE undeclared (first use in this function) って怒られるでしょ?それと同じ。

shuta1976
質問者

お礼

やってみたら無事に解決できました。 本当にありがとうございました。

関連するQ&A