我将结构指针传递给另一个.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;
}
答案 0 :(得分:1)
是的,stats.c
需要结构定义才能知道num
成员在STATS
结构中的位置。
如果只是将指针传递给其他函数,则不需要结构定义;你只需要一个结构类型名称的前向声明;所有结构指针都需要以这种方式兼容,并且允许将指针视为不透明句柄。但由于func2
访问成员,因此它不是不透明的。
答案 1 :(得分:0)
是的,你必须实例化struct类,因为你在.h class
中声明了number变量