.h中如何定义并初始化结构体

为了方便开发,我定义了一个 Global.h 的文件,并在这个文件里,定义了一个结构体Stu,为了方面运用,我又定义了一个 EmptyStu,并予以复制,如代码所示:

#ifndef _GLOBAL_H_
#define _GLOBAL_H_
struct Stu{
    char * name ;
    char * info ;
    long age ;
}
typedef struct Stu Stu ;
const Stu EmptyStu = {NULL,NULL,0}

#endif

就是这样一段程序,结果报错,有2个错误:


 Main.c:(.bss+0x0):multiple definition of `EmptyStu'
Global.c:(.bss+0x0): first defined here
 LoginUI.c:(.bss+0x0): multiple definition of `EmptyStu'
Global.c:(.bss+0x0): first defined here

注意,我这里Main.c和LoginUI.c都导入了"Global.h"。

提问:
1、我想不通为什么会重复定义;
2、在.h文件中,如何定义了结构体后,又给予其中一个变量固定的赋值,并最好保持其全局变量特征,以及const保证其不会改变呢?

给结构加构造函数进行默认值初始化

谢谢,我自己已经解决了