#define offsetof(TYPE, MEMBER) ((size_t) ((TYPE *)0)-MEMBER)
#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)相关推荐
- 非本地类型不能定义方法 cannot define new methods on non-local type time.Duration
能够随意地为各种类型起名字,是否意味着可以在自己包里为这些类型任意添加方法 ? 参见下面的代码演示 : package mainimport "time"type MyDurati ...
- Error 1935.安装程序集 Microsoft.vc80.atl,type=win32,version=8.0.50727.762
装很多软件是都要配置VC++环境的,但由于系统注册表限制,很多时候软件安装过程中会报如下错误 尤其是在win7旗舰版下面: 安装 vc++2005 运行库 Error 1935.安装程序集 Micro ...
- Oracle 自定义类型TYPE(subtype, type object, type body, type table) 用法
原 ORACLE 自定义类型 type/ object 2017年03月28日 13:58:23 tan1012194073 阅读数:5999 版权声明:本文为博主原创文章,未经博主允许不得转载. h ...
- Failed to register Grid Infrastructure type ora.mdns.type
安装11g的集群软件的时候,在最后运行root.sh脚本时候,没有执行成功,最后提示如下错误: [root@r2 ~]# /u01/app/11.2.0/grid_1/root.sh Performi ...
- 【错误记录】Kotlin 编译报错 ( Type mismatch: inferred type is String? but String was expected )
文章目录 一.报错信息 二.解决方案 一.报错信息 Google Play 上架要求 Android 的编译版本 和 目标版本都要高于 30 才可以上传 ; 将 Android 的编译版本 和 目标版 ...
- 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 ...
- 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 ...
- 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 ...
- Error while extracting response for type [] and content type [],json返回值被解析为xml
在使用restTemplate请求restful接口时,在特定情况下总会将返回的json数据解析为xml数据然后处理,接着就会爆出标题中的错误: Error while extracting resp ...
最新文章
- RXSwift基本使用1
- 计算机视觉来看看苏伊士运河堵船(船舶检测)
- 基于DDD的.NET开发框架 - ABP初探
- PowerDesigner中如何给字符串字段设置默认值 .
- 分支-19. 阶梯电价
- 2015年第四季度全球闪存行业营收同比减少5%
- 从 SPIR-V 到 ISPC:将 GPU 计算转化为 CPU 计算
- 二次拟合r方_R方和线性回归拟合优度
- 超级简便的容器化部署工具(使用 ASP.NET Core 演示)
- 计算机视觉,凉了?!
- 吴恩达|机器学习作业3.1前馈神经网络
- 图片上添加文字--div
- python入门教程(非常详细)-Python入门教程:超详细1小时学会Python
- svchost.exe病毒-任务栏怎么也关闭不掉的搜索框
- Ubuntu/CentOS查看系统启动项
- 英语版今日头条到底有多不靠谱?
- eNSP解决OSPF不规则区域几个方法和vlink-peer
- C++基础入门丨1. 初识C++像极了C语言
- oracle实现累加,累计百分比计算
- 如何快速搭建自己的云桌面和云办公服务器软件系统
热门文章
- 深度学习的实用层面 —— 1.8 其它正则化方法
- 吴恩达深度学习 —— 2.12 向量化的更多例子
- 【渗透测试】SQL注入笔记
- Skywalking-05:在Skywalking RocketBot上添加监控图表
- 分数化小数(指定精度)
- SLAM - 01 - 分类
- 蔡高厅老师 - 高等数学阅读笔记 - 02 - 极限(06 、07、08、09、10、11、12)
- python给excel排序_如何使用Python对Excel工作表排序
- ajax第一个例子,第一个ajax例子【ajax有哪几种啊,了解的指导哈】
- java 控制 sortedset_Java集合的checkedSortedSet()方法和示例