为什么头文件中已经定义了,还要再定义一次?解决方案

为什么头文件中已经定义了,还要再定义一次?global.hexternuchar*fpglobal.cuchar*fp为什么头文件中

为什么头文件中已经定义了,还要再定义一次?
<global.h>
extern   uchar   *fp;

<global.c>
uchar   *fp;

为什么头文件中已经定义了,还要再定义一次?

[解决办法]
前一个是声明
后面的是定义
[解决办法]
extern uchar *fp;是引用声明
uchar *fp;是定义