gpt4 book ai didi

c++ - 对象/结构等的 C++ 内存布局是什么?

转载 作者:太空狗 更新时间:2023-10-29 19:59:30 24 4
gpt4 key购买 nike

在 C++ 中,就内存布局而言,我认为 C++ 标准与数据成员在类中的排列方式无关?我认为这取决于所讨论的编译器是否正确?

我对学习对象和其他 C++ 实体(结构等)如何在物理内存中表示非常感兴趣(我知道列表是节点到节点,数组是连续内存——但语言的所有其他方面) .

编辑:学习 x86 汇编程序是否有助于此并更好地理解 C++?

最佳答案

C++ 标准确实指定了一些内容,但远非所有内容。

主要规则如下:

  • 数组中的对象是连续放置的,它们之间没有填充。
  • 类成员对象由访问说明符分隔(public:/private:/protected:)按照声明的顺序排列在内存中,但成员对象之间可能有未指定数量的填充。
  • 对于某些类型(标准布局结构,在标准术语中),第一个基类,或者如果不存在,则第一个成员被布置在与类本身相同的地址。

标准还规定了一些细节,但总的来说,剩下的细节实际上取决于编译器。

关于c++ - 对象/结构等的 C++ 内存布局是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12884933/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com