c - 定义一个在 C 头文件中传递结构的函数

标签 c struct header

标题有一些问题。 我有一个 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/

相关文章:

Java 到 C/C++,或者至少得到 Java 转换后的代码

c - 理解结构体

c++ - 指向结构体访问冲突写入位置的指针

objective-c - 从主项目导入 constatnts 头文件到 Cocoa pod 文件

c - 尝试读取隐藏文件 linux 时出现段错误

c - 错误粘贴 ""HELLO ""and ""WORLD""does not give a valid preprocessing token

c - c中的指针运算和二维数组?

c - 取消引用数组中结构中字符串的 C 指针?

PHP curl 头

c++ - 只需添加一些文档即可触发重新编译 : Is there a solution?