91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

container_of的使用方法是什么

小億
109
2024-01-19 10:49:15
欄目: 編程語言

container_of 是一個 C 語言宏,用于通過結構體成員的指針獲取包含該成員的結構體的指針。

它的使用方法如下:

#define container_of(ptr, type, member) \
    ((type *)((char *)(ptr) - offsetof(type, member)))

參數說明:

  • ptr:指向結構體的某個成員的指針。
  • type:結構體的類型。
  • member:結構體中的成員名稱。

container_of 宏通過使用 offsetof 宏來計算成員在結構體中的偏移量,然后將成員指針減去偏移量,得到結構體的指針。

以下是一個使用 container_of 宏的示例:

#include <stddef.h>

struct Person {
    char name[20];
    int age;
};

int main() {
    struct Person p = {"John Doe", 25};
    int *p_age = &p.age;

    struct Person *p_ptr = container_of(p_age, struct Person, age);

    printf("Name: %s\n", p_ptr->name);
    printf("Age: %d\n", p_ptr->age);

    return 0;
}

輸出結果:

Name: John Doe
Age: 25

在上面的示例中,通過 container_of 宏,我們可以通過 p.age 的指針 p_age 獲取到包含該成員的結構體 struct Person 的指針 p_ptr,然后就可以訪問結構體中的其他成員了。

0
彭州市| 凤山县| 喀喇| 宜兰市| 安多县| 水城县| 忻城县| 万年县| 盐山县| 郧西县| 襄樊市| 和硕县| 太谷县| 武陟县| 精河县| 北安市| 宁陵县| 越西县| 临泽县| 宽城| 丰原市| 深泽县| 天长市| 青州市| 道孚县| 延长县| 天柱县| 云阳县| 平南县| 崇义县| 黑山县| 东乌珠穆沁旗| 铁岭县| 阿克苏市| 江口县| 眉山市| 宿迁市| 改则县| 汶上县| 旬邑县| 静海县|