たとえばこんな感じに
void sshot(PLAY play,SHOT shot[MAX_SHOT])
プレイヤーが弾を撃つための関数やらなにやらが書かれている、
shot.cppにあるsshot関数でプレイヤーの座標を使うためplay.hで定義した構造体を呼び出したりとかありますよね。
この時、shot.hに
#ifndef DEF_SHOT_H
#define DEF_SHOT_H
#define MAX_SHOT 100
typedef struct{
int img;
double x,y;
bool flag;
int sound;
}SHOT;
void sini(SHOT shot[MAX_SHOT]);
void sshot(PLAY play,SHOT shot[MAX_SHOT]);
void sgraph(SHOT shot[MAX_SHOT]);
#endif
error C2065: 'PLAY' : 定義されていない識別子です。
error C2146: 構文エラー : ')' が、識別子 'play' の前に必要です。
というたくさんのエラーが出ます。
ここで私は「ああ、ヘッダファイルにもplayerの構造体が定義されてるplayer.hをインクルードしなきゃならないのか」と思い、こう書きました。
#include "player.h"
#ifndef DEF_SHOT_H
#define DEF_SHOT_H
#define MAX_SHOT 100
typedef struct{
int img;
double x,y;
bool flag;
int sound;
}SHOT;
void sini(SHOT shot[MAX_SHOT]);
void sshot(PLAY play,SHOT shot[MAX_SHOT]);
void sgraph(SHOT shot[MAX_SHOT]);
#endif
ですが、本当にこういう書き方でいいのでしょうか?
アドバイスお願いします。