2011-08-22 46 views
0

我寫了一個小的頭文件,我不斷收到此錯誤:錯誤:之前預計符限定符列表C「ObjectP」 - 循環依賴

expected specifier-qualifier-list before ‘ObjectP’ 

我一直在尋找一個回答,我明白這是因爲編譯器解析文本的方式。 ObjectPGenericHashTable.h其中包括,你可以看到定義。我試着寫#include AFTER定義結構,並沒有幫助。這裏是有問題的代碼,帶有錯誤行標記:

#include "GenericHashTable.h" 

typedef struct List* ListP; 
typedef struct List 
{ 
    unsigned int size; 
    ObjectP head; <----- ERROR HERE 
} List; 

任何想法?謝謝!

編輯:我想我知道問題出在哪裏。 「List.h」包含「GenericHashMap.h」,反之亦然,所以我有一種循環依賴。當我從其中一個移除#include語句時,它會編譯成OK,另一個則會收到錯誤消息。

我必須以某種方式打破這個圈子,或者是有其他的解決辦法?謝謝!

回答

0

我不知道該解決方案的100%,因爲我沒有看到你的GenericHashTable.h。但是,如果你的ObjectP的定義是由你的GenericHashTable.h和你的頭定義列表包含另一頭文件,這將有助於。

相關問題