【发布时间】:2018-12-18 16:02:17
【问题描述】:
我认为标准为我提供了一个函数来查找结构的 1st 元素。不过我好像找不到。
我害怕对齐:我认为 reinterpret_cast 进入结构的 1st 元素是不合法的,是吗?
例如给定struct { int first, int second } foo;如果我不知道 first 被布置为 1st 元素,我将如何获取 foo 中的 1st 元素的地址? (意味着&foo.first 不是一个有效的解决方案。)
【问题讨论】:
-
看起来您可能正在寻找
std::offsetof。如果是这样的话,我会试着找到一个骗子 -
否则如果是标准布局类,则struct的地址和第一个成员的地址是一样的。也有一个骗局。
-
我很好奇——什么时候知道“第一个元素的地址,不管那个元素是什么”,有别于“结构的地址”?
-
为什么需要这个?也许这是一个 X-Y 问题,或者有人在您描述了用例后得到了一个想法
标签: c++ pointers struct alignment member