#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 ...
最新文章
- PostgreSQL在何处处理 sql查询之四十六
- 为朋友写的一个投票功能的提交代码
- 台式计算机l小时耗电,电脑一天的耗电量是多少?不算不知道 一算吓一跳!
- Error: Could not open client transport with JDBC Uri: jdbc:hive2://henu2:10000: java.n et.ConnectExc
- BZOJ.1024.[SCOI2009]生日快乐(记忆化搜索)
- scATAC-seq建库原理,质控方法和新R包Signac的使用
- 图形学理论知识 BRDF 双向反射分布函数
- Combine的使用案例
- 每日一道剑指offer-二叉树的镜像
- 190729每日一句
- 元素周期表排列的规律_元素周期表的元素排列规律和元素的性质
- docker部署kafka踩坑
- Java DAO、Service、web理解之DAO层
- CUBEMX+FreeRTOS使用ArmComplier6(AC6)编译器的设置方法
- WeCode在线少儿编程-中美教育大对比,让孩子学习更高效
- 微信多开服务器,PC端微信多开
- Moodle功能插件汇总
- WPS文档出现很多小箭头解决
- 74LS148 编码器 【数字电路】
- Python中break语句和continue语句的用法
热门文章
- linux创建sftp服务器,Linux Centos 6.6搭建SFTP服务器
- 王道 —— 操作系统的概念(定义)、功能和目标
- Stanford CoreNLP遇到的问题
- Python赋值与深浅拷贝
- CV之Harris特征点检测器-兴趣点检测(详解)
- Jupter 在windows下的运行
- 匹配指定内容的div_HTML背景色教程–如何更改Div背景色,并通过代码示例进行了说明...
- mysql 指定路径_如何为单个MySQL数据库设置特定的目录位置?
- java 图片上传_java web图片上传和文件上传实例
- 苹果暗黑模式_【蜜茶原创】微信最终妥协苹果,暗黑模式正式上线!