我有一個基於單個C文件的項目,我嘗試重新排列幾個.c和.h文件中的進一步開發。爲什麼我的C項目編譯找不到我的結構?
我的主要內容安排如下:
// General includes
typedef struct
{
} MyStruct;
#include "MyInclude.h"
// Rest of the code
我的文件「MyInclude.c」的組織結構如下:
#include "MyInclude.h"
// Defines
// Functions that need to know MyStruct
也有一些是我不understant有關的編譯過程GCC。事實上,我得到了錯誤「MyStruct未聲明(首次在此函數中使用)」,我不這樣做,因爲我在我的結構的typedef聲明後放置了我的include。
有人知道它爲什麼會發生?
該結構不應該在頭文件中? – 2014-09-29 13:20:54
什麼是MyInclude? MyStruct真的是空的嗎? – crashmstr 2014-09-29 13:21:27
讓我改述我以前的評論:*爲什麼*不是頭文件中定義的結構?如果你有多個依賴於結構的源文件,他們將不知道它,只有它定義的源文件將知道結構。 – 2014-09-29 13:25:52