头文件中的struct

时间:2016-04-20 16:12:42

标签: c struct

我想要两个共享结构。

在我的.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

有什么问题?

1 个答案:

答案 0 :(得分:3)

标头文件中的最后两行是pokemon对象的声明,允许您从多个.c文件中使用它们。但在其中一个.c文件中,您必须定义它们,在您的情况下与声明相同但没有extern关键字:

pokemon pokemon1;
pokemon pokemon2;