标题有一些问题。
我有一个 header data.h
,其中包含 typedef struct newPerson
的结构信息。
data.h
用于我的源代码menu.c
。在 menu.c
中,我有一个函数,void addStudentRecord(newPerson pers)
。
代码编译并按预期工作。
但是,我需要将所有函数添加到我的 menu.h
header 中。当我将 void addStudentRecord(newPerson pers);
添加到我的 menu.h 时,我收到此错误 unknown type name ‘newPerson’
。
我试图通过添加 #include "data.h
来解决这个问题,但这只会给我带来更多错误。我想知道如何定义一个在头文件中采用结构的函数?
最佳答案
您可以将指向不完整结构类型的指针传递给函数,但如果您要传递结构的副本,它必须是完整类型。也就是说,您必须具有完整的 struct structname { ... }
定义可见才能传递结构的副本。
data.h
中定义的类型似乎是不完整的类型,因此您不能使用它来声明需要结构副本的函数。但是您可能希望函数无论如何都接受指向结构的指针。
另见:
关于c - 定义一个在 C 头文件中传递结构的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28639893/