从一个标头转换为另一个标头中的结构

我遇到了麻烦…我有这个标题:

#ifndef PESSOA_H #define PESSOA_H typedef struct pa{ int idade; int atend; }pessoa; void inicPessoa(pessoa *ps, int id); #endif 

并且,在filaC.h中:

 #ifndef FILAC_H #define FILAC_H #include "pessoa.h" typedef struct pessoa elem_t; typedef struct no{ elem_t info; struct no *prox, *ant; } No; typedef No * Fila; #endif 

但是编译器说filaC.h上的fiel信息有一个不完整的类型。

改变elem_t info;struct elem_t into; 没有效果。

你没有名为struct pessoa类型。 你有struct pa ,你有pessoa (一个typedef)。

所以你需要改变这个:

 typedef struct pessoa elem_t; 

进入以下之一:

 typedef struct pa elem_t; typedef pessoa elem_t;