c语言头文件调试出错

各位,请教一个问题,关于C语言头文件使用的。
我在编程时,写了如下的函数执行文件

img

这个是.c 文件
又写了.h 的头文件

img


写主程序

img

后面编译时不报错,但是功能不正常。
如果在主程序中前面的#include"head.h" 改成#include"head.c"就能正常实现功能。这是为什么呢?难道我的头文件写错了吗?如果错了,编译时为什么不报错呢?
感谢各位支招。

将.c程序里的typedef 注释掉,然后在.c程序中添加#include "head.h"的头文件。这样编译就不会有问题。
编译报错一般只检查语法上的错误,有一些错误是检查不出来的。
你这里是属于.c和.h文件的重复定义错误。