如何在 C++ 中查找对象的字节偏移量?

发布于 2024-09-01 06:04:00 字数 61 浏览 7 评论 0原文

假设我创建了 5 个对象,全部来自同一个类。第一个对象的字节偏移量会是0吗?我如何找出其他对象的字节偏移量?

Let's say I create 5 objects, all from the same class. Would the byte offset of the first object be 0? How would I find out the byte offset of the other objects?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

森林迷了鹿 2024-09-08 06:04:00

什么的“字节偏移”?您要创建一个包含 5 个此类对象的数组吗?在这种情况下,当然,第一个字节的偏移量(从数组的开头开始)是 0;对于其他对象,

static_cast<char*>(&thearray[i]) - static_cast<char*>(&thearray[0])

是第 i 个对象的字节偏移量。

"Byte offset" from what? Are you creating an array of 5 such objects? In that case, sure, the byte offset of the first one (from the start of the array) is 0; as for other objects,

static_cast<char*>(&thearray[i]) - static_cast<char*>(&thearray[0])

is the byte offset of the ith one.

酷到爆炸 2024-09-08 06:04:00

无论offset是什么意思,您始终可以自己检查对象的地址:

printf("%p %p", (void *) &thingOne, (void *) &thingTwo);

Regardless of what you mean by offset, you can always examine the address of the objects yourself:

printf("%p %p", (void *) &thingOne, (void *) &thingTwo);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文