container_of(cdev, struct cpld_led, cdev) 是一个在 C 语言中使用的宏。它的作用是根据结构体成员的地址推算出结构体的首地址,进而实现从一个结构体成员的指针获取到整个结构体的指针。
这个宏接受三个参数:第一个参数是结构体成员的指针,第二个参数是结构体类型,第三个参数是结构体成员的名称。在这个宏的实现中,通过计算结构体成员在整个结构体中的偏移量,从而推算出结构体的首地址。
在这个具体的代码中,container_of(cdev, struct cpld_led, cdev) 的作用是从一个字符设备结构体的指针 cdev 推算出包含这个字符设备结构体的