首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

offsetof(s,m)解析「建议收藏」

*)0 是骗编译器说有一个指向类(或结构)s的指针,其值为0 &((s *)0)->m 是要取得类s中成员变量m的地址 由于这个类(或结构)的基址为0,这时m的地址当然就是ms...中的偏移了 (s *)0 是把0地址转换为s指针类型,然后从这个指针上“取”m成员再取址,而m成员的地址转换后结果就是m成员相对于整个对象的偏移量(我们既然是从0地址开始算的,就不用再减去起始地址...(s *)0)->m) /* Microsoft x86 */ #define offsetof(s,m) (size_t)(unsigned long)&(((s *)0)->m)...下面拿KEIL 8051的定义来作点解释: ((s *)0):强制转化成数据结构指针,并使其指向地址0; ((s *)0)->m:使该指针指向成员m &(((s *)0)->m):获取该成员...如果利用这个NULL指针来访问s的成员当然是非法的,但&(((s*)0)->m)的意图并非想存取s字段内容,而仅仅是计算当结构 体实例的首址为((s*)0)时m字段的地址。

27920

MySQL架构备份之M-S-S级联备份

M--S1--S2 级联复制 master—>slave1—>slave2 master需要开启二进制日志 中间的slave1也需要打开二进制日志,但是它默认不把应用master的操作记录到自己的二进制日志...slave1必须开启二进制日志 2、slave2必须开启中继日志 3、master和slave1和slave2的server-id必须不一样  范围(2^23-1) 4、master和slave的初始数据一致 M-...-S1--S2级联架构操作步骤 环境: master:192.168.1.166 slave1:192.168.1.114 slave2:192.168.1.180 1、环境准备 # master: [...status \G; Slave_IO_Running: Yes Slave_SQL_Running: Yes 如果查看状态这两个值都为Yes, 说明M-...-S就已经做好 6、在slave1上面对slave2授权 先停止slave slave1: mysql> stop slave; Query OK, 0 rows affected (0.03 sec)

27420
领券