linux内核中求偏移量的宏定义如下

#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)

------------------------------宏测试小程序---------------------------------------------------------------------

#include

#include

#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)

struct test_struct{

char   ch;

int    it;

int    ul;

};

int main()

{

size_t off=-1;

struct test_struct *st,*rt;

st = (struct test_struct *) malloc (sizeof(struct test_struct));

st->ch='a';

st->it=1;

st->ul=1ul;

/*    off =(size_t)&(((struct test_struct *)0)->it);*/

off=offsetof(struct test_struct,it);

//    rt=(struct test_struct *)((char *)(&st->it)-off);

rt=(struct test_struct *)(((char *)&(st->it)-(char *)off));

printf("%d %d %d",rt->it,off,sizeof(struct test_struct));

return 0;

}

--------------------------------------------------------------------------------------------------------------

由于4字节补齐的原因,sizeof(struct test_struct)=12,而不是等于9 阅读全文

类别:c/c++ 查看评论

java字段偏移量什么意思_求结构体的字段的偏移量相关推荐

  1. 宏定义来实现一个结构体成员相对于该结构体首地址的偏移量

    #define my_offerset(type , exp) ((int)&(((type*)0)->exp))//因为是求结构体的成员内存偏移.结构体会定义一种新的数据类型 所以ty ...

  2. c语言获取结构体大小sizeof,C语言sizeof求结构体数组长度

    C语言sizeof求结构体数组长度 C语言sizeof求结构体数组长度 #include typedef struct ss{ char a;//偏移量为0,大小为1,0能被1整除,=1 short ...

  3. 获取结构体中变量的偏移量

    C/C++获取结构体中变量的偏移量 1.某些特殊需求下,我们需要知道某个变量在其结构体中的偏移位置. 通常的做法就是定义一个宏变量,如下: #define OFFSET(structure, memb ...

  4. go在方法中修改结构体的值_[Go]结构体及其方法

    结构体类型可以包含若干字段,每个字段通常都需要有确切的名字和类型.也可以不包含任何字段,这样并不是没有意义的,因为还可以为这些类型关联上一些方法,这里可以把方法看作事函数的特殊版本. 函数事独立的程序 ...

  5. var _ 接口 = 结构体{}

    gin源码ps:把问题暴露在编译阶段,实例化Engine结构体,并立马丢掉,确保结构体实现了IRouter接口var _ 接口 = &结构体{}

  6. 解决go数据表查询结构体对应字段null问题(sqlx converting NULL to string is unsupported)

    方法一:将结构体对应字段类型设为指针类型,一劳永逸,不用担心json序列化与反序列化问题 // User 用户结构体(对应mysql表) type User struct {Id int `db:&q ...

  7. C语言_函数结构体的调用

    C语言_函数结构体的调用 #include<stdio.h> //定义存储函数的结构体 struct map{//定义无参数类型返回void的函数指针void (*p)(); }; /** ...

  8. ABAP中不修改内表参照的结构,给内表/结构体增加字段

    参照的结构体中字段数不够,除了se11修改结构之外,还可以在声明时用INCLUDE,如果不修改结构,在SE37运行测试是看不到这个字段的. Definition TYPES|DATA:BEGIN OF ...

  9. GoLang之结构体匿名字段

    文章目录 1.结构体内嵌套匿名结构体(访问相同字段) 2.结构体内嵌套匿名结构体(访问相同方法) 3.结构体嵌套匿名自定义类型 4.结构体嵌套匿名内置类型 5.结构体嵌套任意类型匿名指针 6.匿名结构 ...

最新文章

  1. mysql 导出中间 数据_MYSQL数据库之间的数据导出与导入
  2. 硬核教程:五步掌握用VSCode进行高效Python开发
  3. umijs多环境配置_umi 项目多环境打包配置
  4. 服务器装什么系统可以模拟器多开,安卓模拟器多开哪个最好 流畅不卡、省资源、群控刷机都有...
  5. 面试常用shell脚本_Shell脚本编写及常见面试题
  6. 阿里云oss 上传图片 python3
  7. 【TensorFlow-windows】name_scope与variable_scope
  8. vmlinuz 文件解压缩(zImage|bzImage)
  9. JAVA工具类之URL(编码、解码、参数解析)
  10. 魔兽世界服务器卡 邮件寄不出去,魔兽世界怀旧服邮件收不到怎么办 WOW怀旧服邮件取不出来解决方法...
  11. 【JAVA今法修真】 第九章 兼容并包 适配模式
  12. 冰点还原无法修改计算机时间,设置冰点还原解冻期间方法
  13. qq音乐网页版下载歌曲
  14. 10岁小表妹也能“吃透”Geth 客户端 !360秒,快速部署 ICO Token
  15. 2019年的学习计划
  16. 用python 打印等腰三角形
  17. 从执行顺序看for循环(深入理解)
  18. scilab和matlab的区别,matlab PK scilab
  19. docker mysql 内存大小_docker容器内存占用过高(例如mysql)
  20. Session结合Filter防止盗号

热门文章

  1. 努力≠上进!那些持续精进的人有多可怕?
  2. GitHub 标星 1.6w+,前方宝藏项目出没!| 原力计划
  3. 微信引擎插件会对小游戏带来怎样的利好?(深度解读)
  4. Android 开发究竟是选择 Java 还是 Kotlin?Google 有话说
  5. 直接上手!不容错过的 Visual Studio Code 十大扩展组件
  6. 日本乐天要求员工学编程,AI 进中小学课堂,全民编程时代来了!
  7. @程序员,敏捷开发防坑指南请查收!
  8. Facebook 真的「非死不可」吗?
  9. 如何利用机器学习算法解读股市行情?
  10. 动辄350亿被盗,区块链安全真就如此不堪一击?