回调函数解析
来源:互联网 发布:最好的java培训学校 编辑:程序博客网 时间:2024/06/05 02:26
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include <string.h>
typedef long TYPE;
typedef int (*Compare)(void * ,void *);
typedef struct node{
void *data;
struct node *next;
}Nnode,*Link;
Compare com ;
/*
*Fun Name: InitLink
*Fun Could: Create a Link
*Input Num: none
*Output Num: L
*/
Link InitLink()
{
Link L;
L = (Link)malloc(sizeof(Nnode));
L->next = NULL;
return L;
}
/*
*Fun Name: InsertL
*Fun Could: Insert a Link
*Input Num: L,e
*Output Num: L
*/
Link InsertL(Link L, void *e)
{
Link s,r;
r = L;
while(r->next != NULL)
r = r->next;
s = (Link)malloc(sizeof(Nnode));
s->data = e;
r->next = s;
s->next = NULL;
return L;
}
int compare(void *a, void *b)
{
if(*((TYPE *)a) == *((TYPE *)b))
return 0;
else
return -1;
}
/*
*
*
*/
Link Seach_List(Link L, Compare c, void *value)
{
Link r;
r = L->next;
com = c;
while(r != NULL){
if((com(r->data, value)) == 0)
break;
r = r->next;
}
return r;
}
/*
*Fun Name: DeleteL
*Fun Could: Delete a jiedian
*Input Num: L,i
*Output Num: L
*/
Link DeleteL(Link L, int i)
{
Link r,p;
int i1,i2;
r = p = L;
i1 = i2 = i;
while(i1 != 1){
p = p->next;
i1--;
}
while(i2 != 0){
r = r->next;
i2--;
}
p->next = r->next;
free(r);
return L;
}
/*
*Test
*/
void test_one()
{
Link L,r;
int i;
TYPE value = 54;
TYPE temp[15];
memset(temp, 0, 15);
for (i = 0; i < 10; i++)
temp[i] = (i+48);
L = InitLink();
for(i = 0;i < 10; i++){
L = InsertL(L, (temp+i));
}
r = L->next;
while(r != NULL){
printf("%ld\n", *((TYPE *)r->data));
r = r->next;
}
r = Seach_List(L, compare, &value);
printf("seach :%ld\n", *(TYPE *)r->data);
}
void test_str()
{
Link L, r;
int i;
char *str = "peng";
char *a[5]={
"lan",
"peng",
"shell",
"linux",
"bash"
};
L = InitLink();
for(i = 0; i < 5; i++)
L = InsertL(L, a[i]);
r = L->next;
while(r != NULL){
printf("%s\n", (char *)r->data);
r = r->next;
}
r = Seach_List(L, strcmp, str);
printf("seach :%s\n", (char *)r->data);
}
int main()
{
test_one();
test_str();
return 0;
}
上一篇:linux下串口下载工具
下一篇:记住这些话 他会帮你变得更完美
- oc总结
- pywebkit 文档搜寻之旅
- Linux内存分析(2) -- mm\bootm...
- linux 内存管理 - paging_ini...
- free_area_init_core()函数5-4' target='blank' >浅析armlinux-paig_init()->fr...
- linux 常见服务端口
- 【ROOTFS搭建】busybox的httpd...
- xmanager 2.0 for linux配置
- 什么是shell
- linux socket的bug??
- 初学UNIX环境高级编程的,关于...
- chinaunix博客什么时候可以设...
- 一个访问量较大网站的服务器。...
- 收音机驱动与v4l2架构的关系,...
- 如何将linux驱动改为裸机驱动(...
- 回调函数解析
- 解析--回调函数
- 回调函数解析
- 回调函数解析
- 回调函数解析
- 回调函数解析
- 回调函数_解析
- C语言---回调函数------------->解析
- C语言---回调函数------------->解析
- C语言---回调函数------------->解析
- C语言---回调函数------------->解析
- JS回调函数全解析教程
- Android中回调函数机制解析
- 回调函数解析(1)
- C/C++之回调函数解析
- JS回调函数全解析教程
- Cocos2dx中常用回调函数解析
- JS回调函数全解析教程
- linux MTD 源码分析-word文档
- IT学生解惑真经pdf(转载)
- linux2.6内核信号量学习
- 结构体对齐详解
- linux下串口下载工具
- 回调函数解析
- 记住这些话 他会帮你变得更完美
- 读《C缺陷与陷阱》之-函数声明理解
- 2.6内核字符设备驱动程序解析(续)
- shell十三问之exec 跟 source 差在哪? 解析
- linux2.6.28-tty设备驱动学习(一)
- linux2.6.28-tty设备驱动学习(二)
- Linux2.6 DM9000驱动模编译为模块
- 字符设备的信号量,阻塞和非阻塞,poll实现