一个c语言程序只能包含一个用户头,如何写一个头文件,使它包含多个c源程序需要用到的变量或者函数?...

已结贴√

问题点数:7 回复次数:3

ca56232b3bbedf9a539d07f37fffb99a.gif

3144d8b7615c79d9f638db40d5689d26.gif

a218af6549b45ee526caf607ebff1358.gif

0f8df0e29816ae721419de940fb833d1.gif

如何写一个头文件,使它包含多个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源程序放在一个工程下,连接的时候报错

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值