我有三个文件。你打算如何将文件包含在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