【发布时间】:2014-09-29 13:17:45
【问题描述】:
我有一个基于单个 C 文件的项目,我尝试重新安排它以在多个 .c 和 .h 文件中进行进一步开发。
我的主要组织如下:
// General includes
typedef struct
{
} MyStruct;
#include "MyInclude.h"
// Rest of the code
我的文件“MyInclude.c”组织如下:
#include "MyInclude.h"
// Defines
// Functions that need to know MyStruct
关于 GCC 的编译过程,我有些不明白。事实上,我得到了错误“MyStruct undeclared (first use in this function)”,我不知道为什么我把我的包含放在我的结构的 typedef 声明之后。
有人知道为什么会这样吗?
【问题讨论】:
-
结构体不应该在头文件里吗?
-
MyInclude 中有什么?
MyStruct真的是空的吗? -
让我改写我之前的评论:为什么不是头文件中定义的结构?如果你有多个依赖于结构的源文件,它们不会知道它,只有定义它的源文件才会知道结构。
-
我需要知道我所有的 .c 文件(在 main.c 和 MyInclude.c 中)中的 MyStruct 我认为在我的 main.c 中定义它是一样的。我将需要实现其他需要它的 MyInclude.c 文件。
标签: c struct compilation