e511.c

構造体の二重定義


コード例: /* ------------------------------------------------- * プロジェクトで使用するヘッダー prj_std.h の一部 */ struct SA { char *name ; int deposit ; } ; /* ------------------------------------------------- * ソースファイル */ #include "prj_std.h" /* prj_std.h で定義されているにも関わらず */ /* 再度構造体 SA の型を定義 */ struct SA { char *name ; float deposit ; } ;
解説: メンバ変数の名前、型をまったく等しく再定義した場合でも、この警告は出力されます。 ここで問題となるのは、単に構造体の再定義してしまったことではなく、 『プロジェクトの構成をよく理解せずにコーディングしている』 というプログラマーの姿勢になりがちです。 落ち着いて、全体の構成を把握し、 他の "車輪の再開発" に注意してみてください。