我有結構的全局數組宣佈EXTERN陣列結構
struct _links link[255][255][255];
在我main.c中
結構的這種陣列還用於在另一個文件中,action.c,我試圖宣佈它在action.c作爲一個外部,即
extern struct _links link[255][255][255];
然而,我得到的錯誤消息「陣列型具有不完整的元件類型」。我不明白這意味着什麼。我該如何解決這個問題?
謝謝。
我有結構的全局數組宣佈EXTERN陣列結構
struct _links link[255][255][255];
在我main.c中
結構的這種陣列還用於在另一個文件中,action.c,我試圖宣佈它在action.c作爲一個外部,即
extern struct _links link[255][255][255];
然而,我得到的錯誤消息「陣列型具有不完整的元件類型」。我不明白這意味着什麼。我該如何解決這個問題?
謝謝。
在頭文件中定義你的結構struct _links
;在my_main.c和action.c中包含它們,分別編譯並鏈接它們。
它的工作原理沒有用於內置數據類型的頭文件。但對於用戶定義的數據類型,頭文件是必需的。
請注意,造成這種情況的主要原因是,如果沒有'struct _links'的完整定義,編譯器無法知道action.c中數組元素的大小和對齊方式。 – pmdj 2012-01-17 12:04:17
您必須在某處聲明struct _links
類型。
良好的編程習慣是創建一個包含
extern struct _links link[255][255][255];
包括雙方的main.c和action.c文件的新文件links.h。
不要忘記只定義一次變量。
約extern關鍵字更多的信息,看看這個帖子https://stackoverflow.com/a/1433387/1117720
你包括包含在第二個文件'_links'的定義文件? – 2012-01-17 11:12:15