次のようにヘッダーファイルに構造を作成しました。
typedef struct
{
GLfloat lgtR, lgtG, lgtB, lgtA;
GLfloat x, y, z;
bool islight;
GLfloat width, height, depth;
GLenum lightn;
particle prt;
int maxprt;
} emitter;
これは問題なく動作します。
ただし、その特定のヘッダーファイルでは、すべての関数で使用でき、メインのソースファイルの一部ではないグローバルエミッターを宣言したいと思います。
// header.h global declaration
emmiter currentEmit;
GLvoid glSetEmitter(emitter emitter)
{
currentEmit = emitter;
}
ただし、これを試してみると、「エラーC2228:'.variable'の左側にclass/ struct / unionが必要であるため、ここで構造体がまったく宣言されていないことを前提としています。
その構造をヘッダーファイル内でグローバルに宣言する方法はありますか?もしそうなら、それが他の.cppファイルの一部にならないようにする方法もありますか?