#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
宏的运行机理:
1. ( (TYPE *)0 ) 将零转型为TYPE类型指针; 
2. ((TYPE *)0)->MEMBER 访问结构中的数据成员; 
3. &( ( (TYPE *)0 )->MEMBER )取出数据成员的地址; 
4.(size_t)(&(((TYPE*)0)->MEMBER))结果转换类型。巧妙之处在于将0转 换成(TYPE*),结构以内存空间首地址0作为起始地址,则成员地址自然为偏移地址;

转载于:https://www.cnblogs.com/budapeng/p/5340514.html

#define offsetof(TYPE, MEMBER) ((size_t) ((TYPE *)0)-MEMBER)相关推荐

  1. 非本地类型不能定义方法 cannot define new methods on non-local type time.Duration

    能够随意地为各种类型起名字,是否意味着可以在自己包里为这些类型任意添加方法 ? 参见下面的代码演示 : package mainimport "time"type MyDurati ...

  2. Error 1935.安装程序集 Microsoft.vc80.atl,type=win32,version=8.0.50727.762

    装很多软件是都要配置VC++环境的,但由于系统注册表限制,很多时候软件安装过程中会报如下错误 尤其是在win7旗舰版下面: 安装 vc++2005 运行库 Error 1935.安装程序集 Micro ...

  3. Oracle 自定义类型TYPE(subtype, type object, type body, type table) 用法

    原 ORACLE 自定义类型 type/ object 2017年03月28日 13:58:23 tan1012194073 阅读数:5999 版权声明:本文为博主原创文章,未经博主允许不得转载. h ...

  4. Failed to register Grid Infrastructure type ora.mdns.type

    安装11g的集群软件的时候,在最后运行root.sh脚本时候,没有执行成功,最后提示如下错误: [root@r2 ~]# /u01/app/11.2.0/grid_1/root.sh Performi ...

  5. 【错误记录】Kotlin 编译报错 ( Type mismatch: inferred type is String? but String was expected )

    文章目录 一.报错信息 二.解决方案 一.报错信息 Google Play 上架要求 Android 的编译版本 和 目标版本都要高于 30 才可以上传 ; 将 Android 的编译版本 和 目标版 ...

  6. SpringBoot:Inferred type 'S' for type parameter 'S' is not within its bound

    在使用springboot 方法报错: Inferred type 'S' for type parameter 'S' is not within its bound; should extends ...

  7. Inferred type 'S' for type parameter 'S' is not within its bound

    Inferred type 'S' for type parameter 'S' is not within its bound springboot报错内容: Inferred type 'S' f ...

  8. Inferred type S for type parameter S is not within its bound

    springboot报错内容: Inferred type 'S' for type parameter 'S' is not within its bound; should extends xxx ...

  9. Error while extracting response for type [] and content type [],json返回值被解析为xml

    在使用restTemplate请求restful接口时,在特定情况下总会将返回的json数据解析为xml数据然后处理,接着就会爆出标题中的错误: Error while extracting resp ...

最新文章

  1. PostgreSQL在何处处理 sql查询之四十六
  2. 为朋友写的一个投票功能的提交代码
  3. 台式计算机l小时耗电,电脑一天的耗电量是多少?不算不知道 一算吓一跳!
  4. Error: Could not open client transport with JDBC Uri: jdbc:hive2://henu2:10000: java.n et.ConnectExc
  5. BZOJ.1024.[SCOI2009]生日快乐(记忆化搜索)
  6. scATAC-seq建库原理,质控方法和新R包Signac的使用
  7. 图形学理论知识 BRDF 双向反射分布函数
  8. Combine的使用案例
  9. 每日一道剑指offer-二叉树的镜像
  10. 190729每日一句
  11. 元素周期表排列的规律_元素周期表的元素排列规律和元素的性质
  12. docker部署kafka踩坑
  13. Java DAO、Service、web理解之DAO层
  14. CUBEMX+FreeRTOS使用ArmComplier6(AC6)编译器的设置方法
  15. WeCode在线少儿编程-中美教育大对比,让孩子学习更高效
  16. 微信多开服务器,PC端微信多开
  17. Moodle功能插件汇总
  18. WPS文档出现很多小箭头解决
  19. 74LS148 编码器 【数字电路】
  20. Python中break语句和continue语句的用法

热门文章

  1. linux创建sftp服务器,Linux Centos 6.6搭建SFTP服务器
  2. 王道 —— 操作系统的概念(定义)、功能和目标
  3. Stanford CoreNLP遇到的问题
  4. Python赋值与深浅拷贝
  5. CV之Harris特征点检测器-兴趣点检测(详解)
  6. Jupter 在windows下的运行
  7. 匹配指定内容的div_HTML背景色教程–如何更改Div背景色,并通过代码示例进行了说明...
  8. mysql 指定路径_如何为单个MySQL数据库设置特定的目录位置?
  9. java 图片上传_java web图片上传和文件上传实例
  10. 苹果暗黑模式_【蜜茶原创】微信最终妥协苹果,暗黑模式正式上线!