IOFFSETOF ICONTAINEROF IQUEUE_ENTRY
#include <iostream>
#define IOFFSETOF(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER) #define ICONTAINEROF(ptr, type, member) ((type*)(((char*)((type*)ptr)) - IOFFSETOF(type, member)) ) #define IQUEUE_ENTRY(ptr, type, member) ICONTAINEROF(ptr, type, member)
using namespace std;
int main(){
struct Demo{
char sex;
int id;
};
struct Demo dd = {'',};
cout << "&dd : " << &dd << endl;
cout << "IQUEUE_ENTRY(&dd,Demo,sex) : " << IQUEUE_ENTRY(&dd.sex,Demo,sex) << endl;
cout << "IQUEUE_ENTRY(&dd,Demo,id) : " << IQUEUE_ENTRY(&dd.id ,Demo, id) << endl;
return ;
}
输出:

IQUEUE_ENTRY作用:根据结构体的某个数据成员,输出结构体的起始地址。
#define IOFFSETOF(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
IOFFSETOF:解析参考https://www.cnblogs.com/iuyy/p/13391851.html
IOFFSETOF ICONTAINEROF IQUEUE_ENTRY的更多相关文章
- #define IOFFSETOF(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
#include <iostream> #define IOFFSETOF(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER) usi ...
随机推荐
- SCSS笔记
SASS是成熟,稳定,强大的 CSS预处理器 ,而 SCSS 是SASS3版本当中引入的新语法特性,完全兼容CSS3的同时继承了CSS强大的动态功能. CSS书写代码规模较大的web应用时,容易造成选 ...
- 从零开始学Electron笔记(一)
前端技术在最近几年迅猛发展,在任何开发领域我们都能看到前端的身影,从PC端到手机端,从APP到小程序,似乎前端已经无所不能,这就要求我们需要不断地去学习来提升自己!前段时间尤大通过直播介绍了一下Vue ...
- 使用LLDB和debugserver对ios程序进行调试
在没有WIFI的情况下,使用USB连接IOS设备,使用辅助插件usbmuxd来辅助调试.我其实也想用wifi调试,奈何公司的wifi绑定了mac地址,而我又使用的是黑苹果虚拟机,使用桥接的方式修改网段 ...
- 【Python篇】工厂模式
工厂方法模式 前言 在<设计模式>一书中工厂模式提到了: 工厂方法模式(Factory Method) 抽象工厂模式 (Abstract Factory) 但是在实际过程中还有一种工厂模式 ...
- (二)学习了解OrchardCore笔记——开篇:OrchardCore的中间件
现在开始看Starpup的中间件.这是一个扩展方法app.UseOrchardCore() public void Configure(IApplicationBuilder app, IHostEn ...
- Python模块03/re模块
Python模块03/re模块 内容大纲 re模块(正则表达式) 1.re模块(正则表达式) import re s = "meet_宝元_meet" print(re.finda ...
- 3dTiles 数据规范详解[4.1] b3dm瓦片二进制数据文件结构
B3dm,Batched 3D Model,成批量的三维模型的意思. 倾斜摄影数据(例如osgb).BIM数据(如rvt).传统三维模型(如obj.dae.3dMax制作的模型等),均可创建此类瓦片. ...
- C#-性能-二维数组和数组的数组的性能比较
两者是3:2的消耗比例 const int NUM = 10000; int[,] vec = new int[NUM, NUM]; Stopwatch sw = Stopwatch.StartNew ...
- Vmware虚拟机下不能访问网络的解决办法之一
Vmware虚拟机下不能访问网络的解决办法之一 1.这个是默认的网络设置 2.如果不能访问网络,看下VMware相关的服务有没有打开,win+R 3.找到VMware的相关选项,全部启用(当然网络可能 ...
- 蒲公英 · JELLY技术周刊 Vol.14: Vue 3 新特性详解
2020 年真的是灾祸频发,但是在各类前端框架上,依旧是在稳步的推进.近日 Vue 团队更新了关于 Vue 3 的最新状态,尤大新增了三个语法糖特性,它们将用于优化 SFC 的开发体验,你会有兴趣尝鲜 ...