全部博文(11)
发布时间:2015-06-03 18:01:33
1.offset宏讲解#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE*)0)->MEMBER)对这个宏的讲解我们大致可以分为以下4步进行讲解:1>( (TYPE *)0 ) 0地址强制 "转换" 为 TYPE结构类型的指针;2>((TYPE *)0)->MEMBER 访问TYPE结构中的MEMBER数据成员;3>&( ( (TYPE *)0 )->MEMBER).........【阅读全文】
发布时间:2015-06-03 18:01:25
1.container_of宏1> Container_of在Linux内核中是一个常用的宏,用于从包含在某个结构中的指针获得结构本身的指针,通俗地讲就是通过结构体变量中某个成员的首地址进而获得整个结构体变量的首地址。2>接口:container_of(ptr, type, member) ? ptr:表示结构体中member的地址? type:表示结构体类型? member:表示.........【阅读全文】
发布时间:2015-06-03 17:44:38
ikely()与unlikely()在2.6内核中,随处可见,那为什么要用它们?它们之间有什么区别呢?首先明确:if (likely(value))等价于if (value)if (likely(a>b)) {fun1();if (unlikely(value))等价于if (value)也就是说likely()和unlikely()从阅读和理解的角度是一样的。这两个宏在内核中定义如下: .........【阅读全文】