C语言头文件,请教教我怎么制作
typedefstructhappy{structhappy*link;intx;}happy;#include<stdio.h>voidprint(happy*curr...
typedef struct happy{
struct happy *link;
int x;
}happy;
#include<stdio.h>
void print(happy *current)//输出函数。
{
int i=0;
while(current!=NULL)
{
printf("+第%d个元素是%d\n",i+1,current->x);
current=current->link;
i++;
}
printf("输出完毕\n");
}
struct happy
* creat(int value)
{
struct happy *new_value;
new_value=(happy *)malloc( sizeof(struct happy) );
if(new_value==NULL){printf("分配内存出错\n"),exit(0);}//判断创建内存是否成功
new_value->link=NULL;
new_value->x=value;
return new_value;//返回新创建内存的首地址
}
struct happy
* insert(struct happy *roob,int value)//插入函数
{
// 当前指针 当前指针前一个链表 插入信息的地址
struct happy *current=roob, *previous=NULL, *new_value;
while(current->x<value)//寻找要中间插入的地址
{
previous=current;//记录要插入数据的前一个数据地址
if(current->link==NULL)//在最后一个节点添加新数据
{
new_value=creat(value);
current->link=new_value;
new_value->x=value;
new_value->link=NULL;
return roob;
}
current=current->link;//记录要插入数据的后面一个节点地址
}
if(previous==NULL)//在第一个前面插入数据
{
new_value=creat(value);
new_value->link=current;
roob=new_value;
}
else //在中间插入数据
{
new_value=creat(value);
new_value->link=current;
previous->link=new_value;
return previous;
}
return roob;
}
struct happy
*delete_where(struct happy *roob,int where)//定位删除函数
{
int count=1;
struct happy *previous=NULL,*current=roob;
if(where==1){return current->link;free(current);}//要删除的是第一个数据,返回第二个数据地址后释放第一个数据内存
while(count<where)//删除的数据不是第一个
{
previous=current;
current=current->link;
count++;
}
previous->link=current->link;
free(current);
return roob;
}
-------------------------
我想把上面的功能模块做成一个头文件
我想要用的时候直接加载进来就可以了
例如
#include"single_link.h"
#include<stdio.h>
main()
{
happy *head;
head=creat(3);
} 展开
struct happy *link;
int x;
}happy;
#include<stdio.h>
void print(happy *current)//输出函数。
{
int i=0;
while(current!=NULL)
{
printf("+第%d个元素是%d\n",i+1,current->x);
current=current->link;
i++;
}
printf("输出完毕\n");
}
struct happy
* creat(int value)
{
struct happy *new_value;
new_value=(happy *)malloc( sizeof(struct happy) );
if(new_value==NULL){printf("分配内存出错\n"),exit(0);}//判断创建内存是否成功
new_value->link=NULL;
new_value->x=value;
return new_value;//返回新创建内存的首地址
}
struct happy
* insert(struct happy *roob,int value)//插入函数
{
// 当前指针 当前指针前一个链表 插入信息的地址
struct happy *current=roob, *previous=NULL, *new_value;
while(current->x<value)//寻找要中间插入的地址
{
previous=current;//记录要插入数据的前一个数据地址
if(current->link==NULL)//在最后一个节点添加新数据
{
new_value=creat(value);
current->link=new_value;
new_value->x=value;
new_value->link=NULL;
return roob;
}
current=current->link;//记录要插入数据的后面一个节点地址
}
if(previous==NULL)//在第一个前面插入数据
{
new_value=creat(value);
new_value->link=current;
roob=new_value;
}
else //在中间插入数据
{
new_value=creat(value);
new_value->link=current;
previous->link=new_value;
return previous;
}
return roob;
}
struct happy
*delete_where(struct happy *roob,int where)//定位删除函数
{
int count=1;
struct happy *previous=NULL,*current=roob;
if(where==1){return current->link;free(current);}//要删除的是第一个数据,返回第二个数据地址后释放第一个数据内存
while(count<where)//删除的数据不是第一个
{
previous=current;
current=current->link;
count++;
}
previous->link=current->link;
free(current);
return roob;
}
-------------------------
我想把上面的功能模块做成一个头文件
我想要用的时候直接加载进来就可以了
例如
#include"single_link.h"
#include<stdio.h>
main()
{
happy *head;
head=creat(3);
} 展开
2010-03-26
展开全部
直接写到一个文件中就可以了,扩展名是不是.h都无所谓,需要用的时候,将文件复制到程序目前中,用#include 包含就可以了.
不过这个方法是不安全的,如果在一个大程序中的不同文件之间相互包含时,会有出错的可能 (函数重定义错误)
好的方法是做成一个动态链接库,关于动态链接库的生成方法,请自行上网查找相关资料.
不过这个方法是不安全的,如果在一个大程序中的不同文件之间相互包含时,会有出错的可能 (函数重定义错误)
好的方法是做成一个动态链接库,关于动态链接库的生成方法,请自行上网查找相关资料.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询