如何写一个头文件,使它包含多个c源程序需要用到的变量或者函数?
以下是对链表的各种操作的程序,我把创建程序写在另一个c源程序里,定义在main()所在的程序里的worker *head只能在这个c源程序里能用,所以在网上看到可以写一个头文件把这个worker *head以及对应的结构体struct worker{};放在里面,这样是不是能够在不同的c源程序中使用head,以及用worker 在不同的c源程序中定义worker类型
的指针了???没写过头文件 不知道如何下手。。。
#include"stdio.h"
#include"string.h"
void create();
struct worker
{
int num;
int wage;
struct worker *next;
};
struct worker *head;
void display()
{
worker *p=head;
while(p->next !=NULL)
{
printf("编号:%d 工资:%d\n",p->num ,p->wage );
p=p->next ;
}
//printf("编号:%d 工资:%d\n",p->num ,p->wage);
}
void insert()
{
worker *p=head,*p1;
printf("请输入要插入的节点信息:\n");
p1=new worker;
scanf("%d%d",&p1->num,&p1->wage);
if(p->num >p1->num )
{head=p1;p1->next=p;}
else
{
bool flag=false;
while(p->next->next !=NULL)
{
if(p->next->num >p1->num )
{
p1->next =p->next;
p->next=p1;
flag=true;
break;
}
else
p=p->next ;
}
if(flag==false)
{
p->next =p1;
p1->next =NULL;
}
}
//return head;
}
void del()
{
int num;
worker *p=head;
printf("请输入想要删除的节点:\n");
scanf("%d",&num);
if(p->num ==num)
head=p->next ;
else
{
bool flag=false;
while(p->next->next !=NULL)
{
if(p->next->num ==num)
{
p->next =p->next->next ;
flag=true;
break;
}
else
p=p->next ;
}
if(flag==false)
{
if(p->next->num ==num)
p->next =NULL;
else
printf("未找到该节点!\n");
}
}
//return head;
}
void main()
{
//worker *head;
create();
display();
insert();
display();
del();
display();
}
以下是create函数
void create()
{
worker *p1,*p2;
head=p2=p1=new worker;
printf("请输入信息:\n");
scanf("%d%d",&p1->num ,&p1->wage );
p1->next =NULL;
while(p1->num !=0)
{
p1=new worker;
scanf("%d%d",&p1->num ,&p1->wage );
p2->next =p1;
p2=p1;
}
p2->next =NULL;
//return head;
两个c源程序放在一个工程下,连接的时候报错