我可以安全地假设数据成员(offsetof(mystruct, myfield)
)的偏移量在数值上等于用&mystruct::myfield
检索的成员指针的原始值,还是依赖于实现?
答案 0 :(得分:3)
没有;未指定指向成员的指针的实现,并且没有定义的转换来获取“原始”值。
答案 1 :(得分:0)
正式来说,它依赖于实现。在现实生活中,是的,指针到数据成员指针的最流行的实现是(或基于)计划和简单的偏移,即offsetof
评估的相同的事情。
某些实现使用精确偏移量,使用0xFFF...
模式来表示空指针值。一些实现为空指针值保留0x000...
模式,同时将所有“非空”偏移量递增1
。