技术学习
文章平均质量分 56
thomasCJ
这个作者很懒,什么都没留下…
展开
-
rb_tree(红黑树)
#include #include #include #include enum RB_COLOR {BLACK = 0, RED = 1};//------------------------------------------------------------------int nodecount=0, nodecount2=0;//-----------------------------转载 2009-04-14 11:31:00 · 905 阅读 · 0 评论 -
嵌入式C编程面试题
预处理器(Preprocessor)1. 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL 我在这想看到几件事情: 1). #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等) 2). 懂得预处理器将为你计算常数表达式转载 2009-10-12 16:03:00 · 1062 阅读 · 0 评论 -
嵌入式C编程要点
模块划分(1) 模块即是一个.c文件和一个.h文件的结合,头文件是对于模块接口的声明。(2) 某模块提供给其它模块调用的外部函数及数据需要在头文件中以extern声明。(3) 模块内的函数和全局变量需要冠以static关键字声明。(4) 永远不要在头文件中定义变量。定义变量和变量声明的区别在于“定义”会产生内存分配的操作,是汇编阶段的概念;而“声明”则只是告诉包含该转载 2009-10-12 16:10:00 · 608 阅读 · 0 评论 -
list_head实例
#define __KERNEL__ //这样才能使用list.h,具体请看list.h #include "list.h" /*由于我的机器上没有list.h,所以我拷贝了一个,如果你机器上有,应该是加#include */ #include #include #define MAX_USER_LEN 32 #define MAX_PAS_LEN转载 2009-05-05 18:02:00 · 649 阅读 · 0 评论 -
struct sk_buff(1)
struct sk_buff 学习1.sk_buff是linux 网络内核里面最终要的数据结构了.存放要发送和接收的数据.头文件 linux/skbuff.h2.主要成员以及相关结构函数分为以下几类a.layout struct sk_buff *next; struct sk_buff *prev; struct sk_buff_head* list; 方转载 2009-04-13 11:08:00 · 1551 阅读 · 0 评论 -
Linux slab 分配器剖析
本文将探索 slab 分配器背后所采用的思想,并介绍这种方法提供的接口和用法。内存管理器是实际的规范,但是其性能会受到内存碎片和内存回收需求的影响。现在,Linux®内核使用了源自于 Solaris的一种方法,但是这种方法在嵌入式系统中已经使用了很长时间了,它是将内存作为对象按照大小进行分配。本文将探索 slab分配器背后转载 2009-04-17 13:55:00 · 457 阅读 · 0 评论 -
Linux 常用C函数(内存控制篇)
Linux 常用C函数(内存控制篇)2007-03-22 11:43calloc(配置内存空间) 相关函数 malloc,free,realloc,brk 表头文件 #include 定义函数 void *calloc(size_t nmemb,size转载 2009-04-17 10:17:00 · 445 阅读 · 0 评论 -
C语言中的typedef问题
function StorePage(){d=document;t=d.selection?(d.selection.type!=None?d.selection.createRange().text:):(d.getSelection?d.getSelection():);void(keyit=window.open(http://www.365key.com/storei转载 2009-04-16 09:29:00 · 542 阅读 · 0 评论 -
struct sk_buff(2)
LINUX网络协议栈实现分析(-)SKBUFF的实现本文是我尝试分析LINUX网络协议栈实现的一系列文章中的第一篇,主要分析LINUX网络协议栈中SKBUFF的实现。分析以LINUX2.2.x为基础,同时也包括了相同的描述对象在LINUX2.4.x中的新变化。本文引用的代码的版本分别是:LINUX2.2.25,LINUX2.4.20。1 简介了解网络协议栈的人都知道,网络协议栈是一个有层次的软件转载 2009-04-13 11:15:00 · 1529 阅读 · 0 评论 -
printk实现分析(源码)
一直都不清楚是怎么被定位到串口的,所以也非常想搞明白,因为以后可能把标准输入输出还原到键盘和显示器上去,所以决心自己再读一读源码了。不过内核用的打印函数printk完全是和stdin或stdout无关的,因为一开始到start_kernel函数刚开始进入内核就可以用printk函数了,而建立stdin和stdout是在init函数中实现的。有个问题,在我这里的代码中,建立stdin和std转载 2009-04-16 10:41:00 · 3373 阅读 · 0 评论 -
__alignof__宏
__alignof__(struct ipt_entry) ====== 4(__alignof__(struct ipt_entry)-1) ======= 3~(__alignof__(struct ipt_entry)-1) ======== 0xfffffffc所以IPT_ALIGN( S ) 就是使 S 变为 4 对齐(取0,4,8,12,16等4的倍数)。原创 2010-03-25 10:52:00 · 945 阅读 · 0 评论