首页 > linux内核中红黑树定义的理解

linux内核中红黑树定义的理解

linux内核中红黑树的一个定义:

    struct rb_node
{
    unsigned long rb_parent_color;
#define RB_RED 0
#define RB_BLACK 1
    struct rb_node *rb_right;
    struct rb_node *rb_left;
} __attribute__((aligned(sizeof(long))));

看帖子说“在IA-32上,任何rb_node结构体的地址的低两位肯定都是零”,不是很明白,可否详细说一下~

thanks~


注意最后的 __attribute__((aligned(sizeof(long))),这告诉编译器,将结构体按long来对齐。在ia32体系里,sizeof(long)==4,也就是说,任何rb_node结构体的地址都是4的倍数,也就是低两位为零。

【热门文章】
【热门文章】