包括函数的.h文件

时间:2017-08-15 02:06:39

标签: c

我将结构指针传递给另一个.c文件中的函数。我是否需要在两个.c文件中包含此头文件?

//test.h
typedef struct {
   int number;

} STATS;

//test.c
#include "test.h"
void function(){

   func2(s);
}

//stats.c
//do I need : include "test.h"
void func2(STATS * ptr){
    ptr->number = 10;
}

2 个答案:

答案 0 :(得分:1)

是的,stats.c需要结构定义才能知道num成员在STATS结构中的位置。

如果只是将指针传递给其他函数,则不需要结构定义;你只需要一个结构类型名称的前向声明;所有结构指针都需要以这种方式兼容,并且允许将指针视为不透明句柄。但由于func2访问成员,因此它不是不透明的。

答案 1 :(得分:0)

是的,你必须实例化struct类,因为你在.h class

中声明了number变量