【发布时间】:2015-02-20 23:18:10
【问题描述】:
标题有些问题。
我有一个标题data.h,其中包含typedef struct newPerson 的结构信息。
data.h 在我的源代码menu.c 中使用。在menu.c 中,我有一个函数void addStudentRecord(newPerson pers)。
代码可以按需要编译和工作。
但是,我需要将所有函数添加到我的 menu.h 标头中。当我将 void addStudentRecord(newPerson pers); 添加到 menu.h 时,我收到此错误 unknown type name ‘newPerson’。
我试图通过添加#include "data.h 来解决这个问题,但这只会给我带来更多错误。我想知道如何定义一个在头文件中采用结构的函数?
【问题讨论】:
-
将整个结构传递给函数是一个非常糟糕的主意。这样的代码会导致编译器(至少)插入对 memcpy() 的调用,并分配一些其他任何东西都无法访问的内存。强烈建议只传递一个指向结构的指针。注意:该结构确实需要在使用该结构的函数原型之前定义(在头文件中)