请高手帮忙!多谢

请高手帮忙!!!谢谢
一个a.h文件
#ifndef   _GLOBAL_H_
#define   _GLOBAL_H_

#include <stdio.h>
#include <iostream>
#include <string>
#include <math.h>
using   namespace   std;


struct   link
{
double   value;
link*   next;
};
//--------------------------------全局变量---------------------------------------//
  link   *   head[2];
  double   average_val;
//-------------------------------------------//

double   average(link*   nod,double   counter);
double   deviation(link*   nod,double   counter);

bool   addnode(link*   nod,double   val);
bool   removenode(link*   nod,double   val);
link   *nextnode(double   val);
link   *priornode(double   val);

void   print();

#endif  
一个b.cpp文件实现了a.h中的函数,

#include   "global.h "


using   namespace   std;

double   average(link*   nod,double   counter)
{
double   sum=0;
for(link*   p=nod;p!=NULL;)
{
if(p!=head[0])
{
cout < < "请传递链表的头结点 " < <endl;
cin.get();
exit(1);
}
else
{
sum=sum+p-> value;
p=p-> next;
}
}
average_val=sum/counter;
return   average_val;
}

double   deviation(link*   nod,double   counter)
{
double   sum=0;
double   temp=0;
link*   p=nod;
while(p!=NULL)
{
temp=(p-> value-average_val)*(p-> value-average_val);
sum=sum+temp;
p=p-> next;
}
sum=sum/counter-1;
return   sqrt(sum);
}
bool   addnode(link*   nod,double   val)
{
if(nod!=head[1])
{
cout < < "请传递链表的末节点 " < <endl;
return   false;
}
else
{
link*   temp=(link*)malloc(sizeof(link));
nod-> next=temp;
temp-> value=val;
temp-> next=NULL;
return   true;
}
}

bool   removenode(link*   nod,double   val)
{
link*   p1;
link*   p2;
if(nod!=head[0])
{
cout < < "请传递链表的头结点 " < <endl;
cin.get();
return   false;
}
else
{
if(nod-> value==val)
{
head[0]=nod-> next;
}
else
{
p1=nod;
while(p1-> value!=val)
{
p2=p1;
p1=p1-> next;
}
p2=p1-> next;
}
return   true;
}
}


link*   nextnode(double   val)
{
link*   p1;
p1=head[0];
while(p1-> value!=val&&p1!=NULL)
{
p1=p1-> next;
}
return   p1;
}

link*   priornode(double   val)
{
link*   p1;
link*   p2;  
if(val==head[0]-> value)
return   head[0];
else
{
p1=head[0];
p2=p1;
while(p1-> value!=val&&p1!=NULL)
{
p2=p1;
p1=p1-> next;
}
return   p2;
}
}
void   print()
{
for(link*   p=head[0];p!=NULL;p=p-> next)
cout < <p-> value < <endl;
}
一个c.cpp文件
#include“a.h "
然后抱错为:
test   error   LNK2005:   "struct   link   *   *   head "   (?head@@3PAPAUlink@@A)   已经在   maketure.obj   中定义