www.kernel.org
发布时间:2014-12-28 18:51:15
关于链表我们更多时候是对其进行遍历的需求,上一篇博文里我们主要认识了一下和链表操作比较常用的几个内核API接口,其入参全都是清一色的struct list_head{}类型。至于链表的遍历,内核也有一组基本的接口(其实都是宏定义的)供开发者调用。 首先是list_for_each(pos,head),.........【阅读全文】
发布时间:2014-10-26 19:15:58
我们都知道Linux内核里的双向链表和学校里教给我们的那种数据结构还是些不一样。Linux采用了一种更通用的设计,将链表以及其相关操作函数从数据本身进行剥离,这样我们在使用链表的时候就不用自己去实现诸如节点的插入、删除、遍历等操作了。当然,Linux也是从2.1.x内核开始才对链表进行了这样的统一,和我们目前看到的样.........【阅读全文】
发布时间:2014-07-25 00:05:14
书接上回,闲话不表。话说,女神无论是在土豪或者屌丝那里都找不到归属感,冥冥之中天上掉下来一个王子(PS:又名高富帅),既可以满足女神的物质需求还可以满足女神的精神需求:点击(此处)折叠或打开/*GFS.c*/#include <asm/uaccess.h>#include <linu.........【阅读全文】
发布时间:2014-07-18 00:37:52
在阅读内核源码的时候,到处会看到通知链的身影。从技术上来讲,这并不是一个多么复杂、高深、难懂的部分,说白了就是一个单向链表的插入、删除和遍历等操作。但这部分是由协议栈头号大Boss----Alan Cox亲自主刀,足以说明这个基础特性的重要性,也有很多值得我们学习的地方。内核中通知链的基础文件就两个,.........【阅读全文】
发布时间:2014-05-04 23:14:54
前面三篇博文我们分别回顾了冒泡排序、选择排序、插入排序、希尔排序、归并排序、堆排序和快速排序。关于排序算法有几种分类标准,稳定与非稳定、内部与外部。 所谓稳定的排序算法,意思是如果待排序序列有相同元素,经过排序算法处理后他们的相对顺序和排序前在序列里的相对顺序一样,这样我.........【阅读全文】
wjlkoorey2582015-07-29 10:01
HappyAndrew:memset_f定义成memset函数的原型
正解
其实考察的就是函数指针的定义和用法,没啥好多说的
typedef void(*memset_f)(void*,int,size_t);
wjlkoorey2582015-07-29 09:59
紫奇缘:请问大神在横线上填什么使得结果为abc:123demo:123谢谢!!!
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define preg(a) printf("%s:%s",__,a)
int main()
{
char abc[]={"123"};
char demo[]={"demo"};
preg(abc);
preg(demo);
printf("\n");
return 0;
}
这位朋友你好,好久没来CU了,不知道这个迟来的解释对你还有用没:
#define preg(a) printf("%s:%s",!strcmp(a,"123")?"abc":a,"123",a)
HappyAndrew2015-06-13 12:58
紫奇缘:求大神帮助,在横线上填什么使得结果是12121212谢谢!!!
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
typedef ___
int main()
{
int a;
memset_f func;
func=memset;
a=0;
(void)func(&a,0x12,sizeof(0));
printf("%x",a);
return 0;
}
memset_f定义成memset函数的原型
回复 | 举报