ソースファイルから関数宣言を省略してもよい状況はありますか?コンパイルされないCプロジェクトがありますが、その理由はわかりません。私が判断できる限り、コンパイラ(GCC 4.4.1)は、「system.h」の関数「sysData」の宣言に到達したときに、「sepData」typedefの宣言を見つけることができません。
sepsis.hから
typedef struct {
int16 intensity;
int16 offset;
} sepData;
sepsis.cから
sepData sepR, sepIR;
system.hから
void sysData(sepData *sepR, sepData *sepIR);
system.cから
#include "system.h"
#include "sepsis.h"
extern sepData sepR, sepIR;
void sysData(sepData *sepR, sepData *sepIR)
{
}
'sysData'の宣言を'system.h'から削除すると、プロジェクトはエラーなしでコンパイルされます。Cについてはよく知らないので、そのような宣言を含めることは必須だと思いました。誰かがここで何が起こっているのか説明できますか?