为什么我包含了头文件,任然说未知类型

adm头文件定义的链表结构体
文件读写的代码
文件读写的头文件
file.h里已经包含了adm.h,为什么还是报错?
In file included from adm_add_tch.h:5:0,
from adm.h:5,
from menu.h:7,
from menu.c:1:
file.h:6:8: error: unknown type name ‘tp’
extern tp readfile(void);
^
file.h:7:1: warning: parameter names (without types) in function declaration
extern void writefile(tp);

第一张:头文件包含链表结构体
第二张:文件读写file.c的代码
第三张:file.h

这样定义试试

 typedef struct node
 {
     struct tch_info data;
     struct node * next;
 }teacher,*tp;

把在前面定义的

 typedef struct node *tp;

删除