使用 C 使用头文件中定义的结构时出现编译错误

标签 c struct

我有一个奇怪的问题。我已经阅读了我能找到的所有文章,我认为我做的一切都是正确的:

我在头文件 a.h 中定义了一个结构体

typedef struct{
  int io;
} apa;

这个文件位于一个文件夹中,比方说 src/model

此外,在根目录中我有主文件,其中包含如下头文件:

#include "a.h" 

int main(){
  apa X;
 return 0;
}

当我根据 -Isrc/model 使用带有 I-flag 的 gcc 编译它时
我收到错误编译警告:

'apa' undeclared (first use in this function)
(Each undeclare identifier is reported only once for each function it appears in)
X undeclared (first use in this function) 

我似乎找不到问题所在。感谢帮助。

最佳答案

如果主文件与头文件位于不同的文件夹中,则应提及头文件与主文件的总路径。

例如)

#include "/src/model/a.h"

关于使用 C 使用头文件中定义的结构时出现编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15838132/

相关文章:

c - 当给变量赋值以及从标准输入扫描它时,内部会发生什么?

c - 如果我已经会了 Assembly,我还应该学习 C 吗?

c - 使用 C 从文本文件中打印出数组

c - 从 C 结构体数组中删除一个元素?

C,如何为另一个结构中的结构数组分配正确的空间量?

c - ANSI C : Assigning arrays and pointers to arrays

c - '\0' != 0 不是真的吗?

json - 进行 json 解码时为空字段

c - IMAP 服务器不会响应

将结构转换为可变长度缓冲区