container_of 是一个在 Linux 内核中常用的宏,用于获取某个数据结构的指针。通常情况下,该宏的参数包括一个指向数据结构中的一个成员的指针、数据结构中该成员的名称、以及该成员在数据结构中的偏移量。使用这些参数,container_of 宏可以计算出该数据结构的起始地址,从而得到该数据结构的指针。
container_of 的作用是方便对数据结构的操作,特别是在内核编程中。在 Linux 内核中,经常需要在不同的数据结构之间进行转换,例如将 struct list_head 转换为对应的数据结构。这时,就可以使用 container_of 来获取数据结构的指针,从而进行转换和操作