ヘッダー typedef structについて

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
ubu

ヘッダー typedef structについて

#1

投稿記事 by ubu » 15年前

連日申し訳ありません。ubuです。

添付したファイルをgcc version 4.3.3でコンパイルすると、
以下のようにコンパイルエラーが出力されました。
make dep
make

g++ -c A.cpp
In file included from A.cpp:4:
struct.h:3: error: conflicting declaration ‘typedef struct t_struct t_struct’
struct.h:3: error: ‘t_struct’ has a previous declaration as ‘typedef struct t_struct t_struct’

これはtypedef structが何度も定義されているからこのようになってしまっているのでしょうか?
また、struct.hで多重インクルードガードをつけると、
今度は2度目以降、struct.hを参照した時に、typedef structの実体が見えなくなり、
これもダメです。

どのようにすれば解決できるのでしょうか?

たかぎ

Re:ヘッダー typedef structについて

#2

投稿記事 by たかぎ » 15年前

二重インクルードを防止してください。

Justy

Re:ヘッダー typedef structについて

#3

投稿記事 by Justy » 15年前

>また、struct.hで多重インクルードガードをつけると、
>今度は2度目以降、struct.hを参照した時に、typedef structの実体が見えなくなり、
>これもダメです。
 1回目の時に見えているのなら、2回目に見えてなくても問題ないのでは?

ubu

Re:ヘッダー typedef structについて

#4

投稿記事 by ubu » 15年前

返事が遅れてしまい申し訳ありませんでした。

勘違いをしていたようです。
何とか解決しました。

少々規模が大きい故に相互インクルードを見逃していました。

ありがとうございました。
画像

閉鎖

“C言語何でも質問掲示板” へ戻る