我有一个基于单个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未声明(在此功能中首次使用)"而且我不知道为什么在我的结构的typedef声明之后放入我的include。
有人知道为什么会这样吗?
答案 0 :(得分:6)
问题有点不清楚。
文件" MyInclude.c"只能访问您的H文件。 虽然您的结构是用另一个C文件编写的。
您可以通过以下方式解决:
干杯
答案 1 :(得分:0)
你的file.h:
// file.h
#include <stdio.h> //Juste for printf
typedef struct s_data
{
char c;
} t_data;
你的file.c:
#include "file.h"
int main()
{
t_data data;
data.c = 'a';
printf("%c", data.c);
return (0);
}
编译(如果您的文件.c和.h在同一目录中):
gcc file.c -o my_app -I .