- 博客(12)
- 资源 (4)
- 收藏
- 关注
原创 linux kernel 中的链表(二)
linux kernel 中的链表(二)hlist 的定义前文提到的 linux/list.h ,这个文件中实际包含了一个双向链表和一个哈希头,哈希链表的定义如下:struct hlist_head { struct hlist_node *first;};struct hlist_node { struct hlist_node *next, **pprev;};hlist_h
2016-04-06 21:09:41
391
原创 linux kernel 中的链表(一)
linux kernel 中的链表本文总结下最近学习的 kernel 中链表的使用和实现细节,本章主要是总结下链表部分提供的常用接口。kernel 数据结构风格linux kernel 在实现中,沉淀了不少的基础库,其中数据结构的封装和实现让人感觉非常的巧妙,而且用起来觉得非常的强大。 kernel 在实现一个通用的数据结构时,通常都是不带数据部分的,这点有些像C++了,他在给出一个数据结构时,只
2016-03-28 23:07:27
398
原创 内核中 GNU 的 C 扩展
内核中 GNU 的 C 扩展承接前文(Clang 宏定义初探(二)),提到了一个 GNU 的 C 的扩展用法,最近总结了下主要会用到的有以下一些:结构体( struct )值的初始化这个在对网络包拼装,以及一些配置结构体的赋值有一定的帮助。 例如:typedef struct testnode{ int arg1; char arg2; ...}testnode_t;对这个结构体进
2016-03-15 22:33:00
424
原创 Clang 宏定义初探(二)
Clang 宏定义初探(二)本篇总结下这几天看的宏的一些看到的用法。1、参数粘结这是一个类似 shell 之类的脚本语言的特性,可以利用这个特性完成一些重复度比较高的编码的简化。 例如,对proc文件系统进行绑定的时候,需要在/proc/test/目录下,简历3个文件接口,test1、test2、test3. 可以这样写#define BIND(x) test##x->read_proc=tes
2016-03-11 01:39:14
1444
1
原创 Clang 宏定义初探(一)
Clang 宏定义初探(一)宏的定义方法是#define 那么在什么场景下需要用到宏呢?遇到一些重复的东西,简单的有 for(i = 0; i < n; i ++) 之类的,为了减少繁琐的编码,可能使用 c #define FO(i,N) for(i=0;i<N;i++) 为了增强可读性,比如说设置一个数组常亮大小,可以使用 c #define N 1001 宏看起来感觉很好用,但是潜藏了
2016-03-11 01:34:07
1505
转载 Python中的高级数据结构
数据结构数据结构的概念很好理解,就是用来将数据组织在一起的结构。换句话说,数据结构是用来存储一系列关联数据的东西。在Python中有四种内建的数据结构,分别是List、Tuple、Dictionary以及Set。大部分的应用程序不需要其他类型的数据结构,但若是真需要也有很多高级数据结构可供选择,例如Collection、Array、Heapq、Bisect、Weakref、Copy以及
2014-04-20 10:53:13
1073
1
原创 ubuntu12.04 安装NDNSIM
注意:./waf 失败 chmod +x ./waf记得找个教育网的源NDNSIM是NDN(named data networking)的仿真工具,主要关注点在协议操作。1、NS3开发环境设置sudo apt-get install gcc g++ python python-dev //C++和python安装,必装 sudo apt-get
2014-03-23 00:06:55
2101
原创 【C语言】宏定义的一些所见所闻和心得
系统型程序会采用很多的宏定义,写的精髓的宏可以大大加强代码的可读性精简代码量,多的了解宏也比较容易去了解系统级的代码。1、宏定义#define [(宏参数)] //[]为可选项define的作用是字符串替代,替代时机是程序处理完include之后由预处理器做字符串替代(GCC预处理器代码研究ing)。在预处理器处理define的时候只进行对应的展开和替换,不会进行任何的计算,这是
2013-10-31 22:34:36
963
7
原创 linux起步(win7下安装双系统-CentOS)
在win7下安装了centOS(双系统),问题还是挺多的。最先在centOS的论坛上看到的方法,需要在U盘下引导,并且存放安装ISO的必须是FAT32文件系统。我自己down的centOS6.4(kernel 2.6.32-358.el6.x86_64)一共4个多G,放不下。最后在一个网易博客上找到了方法:1、准备资源centOS的ISO镜像,然后是EasyBCD这个用来做引导安装和系统启动,再
2013-10-19 17:06:30
889
6
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人