我想要两个共享结构。
在我的.h:
typedef struct {
char nombre[25];
int pv;
char ataque1[25];
char ataque2[25];
char ataque3[25];
char ataque4[25];
char ataque1_estado[25];
char ataque2_estado[25];
char ataque3_estado[25];
char ataque4_estado[25];
char estado[25];
int pd_max[4];
int pd_min[4];
int pp[4];
int pociones;
int antidotos;
} pokemon;
extern pokemon pokemon1;
extern pokemon pokemon2;
在我的.c文件中:
#include "file.h"
//file body, i use here structs in file.h
但它没有编译。 GCC显示此错误:
main.c :(。text + 0x440):referencia a“pokemon1”sin definir
有什么问题?
答案 0 :(得分:3)
标头文件中的最后两行是pokemon
对象的声明,允许您从多个.c文件中使用它们。但在其中一个.c文件中,您必须定义它们,在您的情况下与声明相同但没有extern
关键字:
pokemon pokemon1;
pokemon pokemon2;