首页 > 其他 > 详细

learning offsetof func

时间:2020-01-14 15:46:36      阅读:68      评论:0      收藏:0      [点我收藏+]

C 库宏 offsetof(type, member-designator) 会生成一个类型为 size_t 的整型常量,

它是一个结构成员相对于结构开头的字节偏移量。

成员是由 member-designator 给定的,结构的名称是在 type 中给定的。

  • type -- 这是一个 class 类型,其中,member-designator 是一个有效的成员指示器。
  • member-designator -- 这是一个 class 类型的成员指示器。
#include <stddef.h>
#include <stdio.h>

struct address{
        char name[50];
        char street[50];
        int phone;
};

int main(){

        printf("in struct address, name   offset %ld bytes\n", offsetof(struct address, name));
        printf("in struct address, street offset %ld bytes\n", offsetof(struct address, street));
        printf("in struct address, phone  offset %ld bytes\n", offsetof(struct address, phone));
        return 0;
}
                 

result:

./a.out 
in struct address, name   offset 0 bytes
in struct address, street offset 50 bytes
in struct address, phone  offset 100 bytes

  

learning offsetof func

原文:https://www.cnblogs.com/lianghong881018/p/12191791.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!