我有三個文件。你打算如何將文件包含在C項目中?
trees.h
// a bunch of typedefs and function prototypes
#include <trees.c>
trees.c
// a bunch of function bodies
main.c
#include <trees.h>
這是不對的,因爲trees.c中的每個函數都給出了有關在tree.h中定義的類型的「未定義類型」錯誤。我試過了我能想到的所有配置 - 從main包含trees.c,並在trees.c中包含trees.h,在trees.h的末尾包含trees.c,並將其包含在trees.h的開頭。 。我能想到的每一個包含的組合,每個組合都給出了一組不同的錯誤。有時它是多重定義,有時它是未定義的函數...
那麼究竟是如何工作?我在哪些文件中放入了哪些文件,哪些文件包含在哪些文件中?
你爲什麼在任何東西中包含'tree.c'? – Mat 2013-02-13 11:05:20
預處理指令#include基本上覆制您包含在指定位置的文件的內容,包括(請參閱http://msdn.microsoft.com/zh-cn/library/36k2cdd4%28v=vs.71%29。 ASPX)。因此,你的#include是你有這種不確定的類型錯誤的原因:他們的原型之前已經複製的功能的實現。 –
JBL
2013-02-13 11:13:25