结构体被多个头文件处理如何解决重复问题?

定义了一个结构体,又定义了一个叫addPerson,h的头文件和一个叫showPerson.h的头文件,这两个头文件都内都有一个函数的声明(该函数的数据类型是我定义的结构体),在源文件里,分别把这几个函数写了下来,并写了对应的头文件,而且,在含main函数的头文件里我把用到的所有头文件都写了,并且调用,但是出现       这是怎么回事?

这是项目的大概框架:

求大佬指点

函数的数据类型  是什么意思。。最好能贴一下关键代码。

如果有同名的strcut定义成全局变量是会冲突的,要么只在全局定义一个,要么放在不同的命名空间里