#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. RXSwift基本使用1
  2. 计算机视觉来看看苏伊士运河堵船(船舶检测)
  3. 基于DDD的.NET开发框架 - ABP初探
  4. PowerDesigner中如何给字符串字段设置默认值 .
  5. 分支-19. 阶梯电价
  6. 2015年第四季度全球闪存行业营收同比减少5%
  7. 从 SPIR-V 到 ISPC:将 GPU 计算转化为 CPU 计算
  8. 二次拟合r方_R方和线性回归拟合优度
  9. 超级简便的容器化部署工具(使用 ASP.NET Core 演示)
  10. 计算机视觉,凉了?!
  11. 吴恩达|机器学习作业3.1前馈神经网络
  12. 图片上添加文字--div
  13. python入门教程(非常详细)-Python入门教程:超详细1小时学会Python
  14. svchost.exe病毒-任务栏怎么也关闭不掉的搜索框
  15. Ubuntu/CentOS查看系统启动项
  16. 英语版今日头条到底有多不靠谱?
  17. eNSP解决OSPF不规则区域几个方法和vlink-peer
  18. C++基础入门丨1. 初识C++像极了C语言
  19. oracle实现累加,累计百分比计算
  20. 如何快速搭建自己的云桌面和云办公服务器软件系统

热门文章

  1. 深度学习的实用层面 —— 1.8 其它正则化方法
  2. 吴恩达深度学习 —— 2.12 向量化的更多例子
  3. 【渗透测试】SQL注入笔记
  4. Skywalking-05:在Skywalking RocketBot上添加监控图表
  5. 分数化小数(指定精度)
  6. SLAM - 01 - 分类
  7. 蔡高厅老师 - 高等数学阅读笔记 - 02 - 极限(06 、07、08、09、10、11、12)
  8. python给excel排序_如何使用Python对Excel工作表排序
  9. ajax第一个例子,第一个ajax例子【ajax有哪几种啊,了解的指导哈】
  10. java 控制 sortedset_Java集合的checkedSortedSet()方法和示例