c - 为什么我的C工程编译找不到我的结构?

标签 c struct compilation

我有一个基于单个 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)”,我不知道为什么,因为我把我的 include 放在了我的结构的 typedef 声明之后。

有人知道为什么会这样吗?

最佳答案

问题有点不清楚。

文件“MyInclude.c”只能访问你的H文件。 而您的结构是用另一个 C 文件编写的。

您可以通过以下方式解决:

  1. 在 H 文件“MyInclude.h”上定义结构。它会起作用,但在方法上是错误的。
  2. 定义 setter 和 getter 以访问您的结构

干杯

关于c - 为什么我的C工程编译找不到我的结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26100888/

相关文章:

c - 这是 DeleteList 函数的正确实现吗? [通过堆的链接列表]

c++ - 如何在 C++ 中声明结构变量

c++ - 在 C++ 中填充仅包含一个 int 数组成员的结构?

c - 在编译时从 __VA_ARGS__ 确定参数类型

c++ - 如何使用 OpenSSL 编译一个简单的程序?

c++ - 如何编译没有项目文件的C++源代码?

c - 为什么我的 ANSI C 函数不保留它设置的参数值?

C中调用main函数

c - C 中的空终止错误

pointers - 如何在指针内改变结构中的字段?