老师,为什么 refcntStrage += SIDE_TABLE_RC_ONE 这行代码会偏移4位,引用计数管理就+1了
来源:6-5 引用计数管理相关面试问题

weixin_慕的地7035837
2019-10-07
retain的实现中, 为什么说 refcntStrage += SIDE_TABLE_RC_ONE 这行代码会偏移4位引用计数管理就+1了size_t前面只占两位是weak跟delloc,不是明白这个偏移跟+1之间的关系?
写回答
1回答
-
慕容7525655
2019-10-19
老师的原话是:这个+1操作实际上是加上对应偏移量的一个操作,这个偏移量实际上是4。
#define SIDE_TABLE_RC_ONE (1UL<<2)
没有说过偏移4位这种话。而是说偏移量的值实际上是4。
如果size_t内存后8位是10101010,引用计数+1,应该是10101110,这不就是相当于+4了
40
相似问题