![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
MinGWとgccでプログラムを組んでいます(OSはWin7です)。
main.cpp、variable.h、function.hの3つのファイルからなり、
variable.hで自己参照構造体とそれのtypedef宣言をしています。
以下のような感じです。
*************************
typedef struct hoge HOGE;
struct hoge{
int a,b;
double x,y;
HOGE *p1, *p2;
}
*************************
そのあとfunction.hでこのHOGE型のポインタを受ける関数を宣言しています。
void hogehoge(HOGE *p1, HOGE *p2);
これをmain.cpp内で、variable.h、function.hの順に読み込んでいます。
そして、コンパイルエラーがでます。
error: unknown type name 'HOGE'(これがずらっと)
typedefのスコープの関係なのか、それ以外の問題なのか。
煮詰まっています。アドバイスお願いいたします。m(_ _)m
No.6
- 回答日時:
インクルードガードを失敗しているということはないですか?
#ifndef VARIABLE_H
..
と書くところを
#ifdef VARIABLE_H
..
と書いているとか
No.4
- 回答日時:
>それはさすがに知ってますよ。
>関数の宣言部分と本体部分の引数の箇所でエラーが出てます。
知ってるなら、なぜそのエラーメッセージも一緒に書かないんでしょうか。
エラーメッセージから抜粋したつもりになった情報(「コンパイルエラーがでます」とかは抜粋ですらない)を書かれるより、エラーメッセージそのものを書かれた方が有用な事は多いです。
No.2
- 回答日時:
はっきり言って, 何ら参考にならない.
手元で
variable.h
typedef struct hoge HOGE;
struct hoge{
int a,b;
double x,y;
HOGE *p1, *p2;
};
function.h
void hogehoge(HOGE *p1, HOGE *p2);
main.cpp
#include "variable.h"
#include "function.h"
int main()
{
hogehoge(0, 0);
return 0;
}
として確かめたけど, そんなエラーは出なかった.
No.1
- 回答日時:
これだけだと何が悪いかわからんので, それぞれのファイルの中で関係する部分をもっと出してもらえませんか?
あと, セミコロンがないのはなぜ?
この回答への補足
セミコロンは書き忘れでした(ソースコードにはあります)
それと、それぞれの関連する部分といってもこれくらいなんです。
・3つのファイルをmain.cppにまとめるとエラーは出なくなります。
・HOGE *pをstruct hoge *pにしてもエラーは消えました(その代わり警告が出ましたが)
・variable.hをmain.cppに移動すると、『'HOGE' was not declared in this scope』とでます。
これで参考になりませんでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# プログラミングのペーパーテスト 実行結果を表示せよ #include <stdio.h> int h 1 2022/07/09 15:27
- C言語・C++・C# プログラミングのペーパーテスト 実行結果がどのように表示されるか答えよ #include <stdi 1 2022/07/09 14:27
- XML XML同じ名前の要素を自動で集約するツール 1 2022/04/11 09:21
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- HTML・CSS 全部のアクセスを指定したページに転送させたい 2 2022/06/28 16:33
- Windows 10 バッチファイルの記述法とルールについてアドバイスをお願いいたします。 1 2022/04/13 10:50
- C言語・C++・C# C言語初心者 構造体 課題について 1 2023/03/10 19:30
- PostgreSQL 【PostgreSQL】行の値の並びを変えるには 1 2023/03/21 16:46
- JavaScript JavaScriptで「〇以上▲まで」の書き方 1 2022/07/20 14:44
- その他(プログラミング・Web制作) pythonのcondaコマンドの仕様について 2 2022/06/24 00:13
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
python エラー
-
エクセルのエラーメッセージ「4...
-
適切な変換関数が存在しない???
-
fortranでプログラムを実行する...
-
Handlesについて
-
Excelのエラーで困ってます。
-
デバッグ中のエラーのことで教...
-
バッチからsqlplusの接続エラー...
-
コンパイルできません。
-
HEWを使用しているのですが、こ...
-
ユーザフォーム開くとエラーになる
-
error C3867 関数呼び出しには...
-
RightとLeft関数のライブ...
-
ACCESSのDate関数のエラー表示...
-
ビルド失敗 指定されたファイ...
-
include<wtsapi32.h>でエラーが...
-
VB2008で定数に色の設定をした...
-
HANDLEの宣言でのエラー
-
BC30002: 型 'ListItem' が定義...
-
Visual Studioのメッセージ
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
python エラー
-
エクセルのエラーメッセージ「4...
-
適切な変換関数が存在しない???
-
fortranでプログラムを実行する...
-
バッチからsqlplusの接続エラー...
-
Excelのエラーで困ってます。
-
sys/time.hのインクルードがで...
-
コンパイルできません。
-
HEWを使用しているのですが、こ...
-
RightとLeft関数のライブ...
-
ビルド失敗 指定されたファイ...
-
VB2008で定数に色の設定をした...
-
visual C++ でビルドの中止がで...
-
デバッグ中のエラーのことで教...
-
multiple definitionというエラー
-
ビルドが失敗してしまいます
-
LPCWSTRとchar
-
Handlesについて
-
BC30002: 型 'ListItem' が定義...
-
左側がクラス、構造体、共用体...
おすすめ情報