Advertisement

获取结构体中某成员的起始偏移量?

阅读量:

文章目录

    • 👩‍🏫每日一问,好好复习

    • offsetof

      • 🔒1.1什么是offsetof?
      • 🔒1.2如何声明?
      • 🔒1.3实例
      • 🔒1.4图示
    • offsetof如何实现

      • 🔒2.1offsetof原理
      • 2.2实现offsetof

每日一问:知识 recap 时间!

当我们处理结构体大小计算时,在内存对齐的问题上我们会有一些特别的要求,并且手动计算偏移量虽然繁琐但也是一种可靠的方法。那么还有什么简便的方式能让我们不用手动去算偏移量吗?

offsetof


🔒1.1什么是offsetof?

C语言标准库中定义了一个名为offsetof的宏函数,在C程序中可以调用此函数来获取某个数据类型的成员变量相对于整个数据类型的起始地址之间的偏移量。

该函数返回一个类型为size_t(即无符号长整型)的有效数值。

这个数值表示该成员相对于其所属数据结构起始位置所占有的字节数。

其成员标识符则由member-designator指定。

而所属的数据类型的名称则由type参数确定。

![在这里插入图片描述](https://cdl.

全部评论 (0)

还没有任何评论哟~