我正在尝试研究linux内核并阅读内核代码,但我无法理解他们用于页面结构的结构,如下所示:我的意思是,为什么他们使用嵌套在嵌套在联合中的结构中的联合(代码已简化...)
struct page {
unsigned long flags;
struct address_space *mapping;
struct {
union {
pgoff_t index;
void *freelist;
};
union {
unsigned counters;
struct {
union {
atomic_t _mapcount;
struct {
unsigned inuse:16;
unsigned objects:15;
unsigned frozen:1;
};
};
atomic_t _count;
};
};
};
}