前提・実現したいこと
以下のように構造体をヘッダーで前方宣言をして定義をcppファイルに記述すると
それを参照するcppファイルで不完全な型とされてコンパイルが通りません.
関数の場合はこの書き方で問題ないと思いますが
(1)構造体の宣言と定義は一般的に同一ファイル, それもヘッダーに記述されるものなのでしょうか?
(2)書けるのならどのようにこの問題を回避する方法がありますか?
発生している問題・エラーメッセージ
不完全な型は使用できません
該当のソースコード
C
1/* hoge_struct.h */ 2#ifndef _INCLUDE_GUARD_HOGE_STRUCT_H_ 3#define _INCLUDE_GUARD_HOGE_STRUCT_H_ 4struct _tagHOGEHOGE; 5typedef struct _tagHOGEHOGE HOGEHOGE; 6#endif
C
1/* hoge_struct.cpp */ 2#iclude "hoge_struct.h" 3 4struct _tagHOGEHOGE 5{ 6 int hogeint; 7};
C
1/* piyo_func.h */ 2#ifndef _INCLUDE_GUARD_PIYO_FUNC_H_ 3#define _INCLUDE_GUARD_PIYO_FUNC_H_ 4int piyo(HOGEHOGE hg); 5#endif
C
1/* piyo_func.cpp */ 2#include "piyo_func.h" 3 4int piyo(HOGEHOGE hg) 5{ 6 return 0; 7}
補足情報
Windows10 Pro
VisualStudio2019 Community
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/24 02:48