返回首页  设为首页  加入收藏  今天是:
网站首页电脑主板电脑cpu电脑内存电脑硬盘电脑显卡电脑电源显示器电脑配件电脑维修
相关文章
 不同场景下的 C++ 对象内存布…
 原神40内存条不能为read怎么…
 随机存储器俗称“内存条”它…
 电脑开机显示蓝屏英文怎么处…
 电脑显卡有什么用呢 显卡有啥…
 千元价位高清高刷广色域Fast…
 电脑上的显卡有什么作用? 跟…
 华中科大发明永久不粘马桶:…
 显卡_百度百科
 win7系统查看硬盘大小的方法…
 SSD闲置多年会丢失数据吗?如…
 移动硬盘突然无法识别怎么办…
 win7系统硬盘分区格式怎么查…
 电脑开机出现Boot Device怎么…
 戴尔小企业服务支持新文创成…
 戴尔DELL电脑维修售后置换(…
 杭州戴尔电脑旗舰店II官方售…
 戴尔电脑售后维修II戴尔杭州…
 上海戴尔DELL旗舰店·售后维…
 电脑主机电源(PSU)上的“8…
 打败奸商?成为奸商!超级小…
 台式机不再配备UPS:备用电源…
 超级小桀开设装机店 粉丝质疑…
 2023-2029年中国电脑电源市场…
 甘源食品拓渠道显效净利连续…
 智能手机行业主要销售渠道分…
 了解中国化妆品10大销售渠道
 什么是渠道一般有哪几类-365…
 这些营销渠道和特点让你的品…
 戴尔 灵越5391 超薄笔记本电…
 三星(SAMSUNG)S27C650D 27英…
 三星显示屏超薄
 台式电脑显示器超薄款(电脑显…
 scription c
 win10系统计算机查看显卡配置…
 win7如何查看电脑配置【详解…
 Win7电脑配置怎么查看 Win7查…
 理由太任性!中国大学生最爱…
 win7如何看自身电脑的配置 w…
 鲁大师发布 2023 上半年PC 处…
 台式电脑cpu排行榜top10
 全球头条:台式电脑cpu排行榜…
 鲁大师2022年半年报消费级电…
 台式电脑cpu排行榜(台式电脑…
 Win10专业版系统C盘虚拟内存…
 Windows11内存完整性无法打开…
 酷睿轻薄本也能运行大语言模…
 Win7系统该内存不能为writte…
 《Gunner HEAT PC》配置要求…
 显卡样子显卡是什么样子的图…
专题栏目
网络
您现在的位置: 电脑评测网 >> 电脑内存 >> 正文
高级搜索
不同场景下的 C++ 对象内存布局(英文博客翻译)
作者:佚名 文章来源:本站原创 点击数: 更新时间:2023/8/25 15:13:19 | 【字体:

  皇媛世家嫩白修复液本文将会介绍 C++ 对象几种不同的内存布局,并探讨不同的存储和读取标识符会如何影响内存占用。本文不会涉及任何编译器增强代码、名称修饰等内存相关的 C++ 机制,这些内容属于编译器和架构相关内容。为了进一步简化内容,本文只考虑标准的栈内存延伸方向(即从上向下),且内存中的数据成员也以倒置形式表示。

  简言之,本文是关于 不同的对象是如何在内存中存储 的。

  上面的例子要说明的是:只有数据成员对象会被分配在栈上,而且排列的顺序也与它们在代码中的声明顺序相同。绝大多数编译器的行为都是这样的。

  此外,所有的成员函数、构造函数、析构函数以及编译器增强代码都在代码段中( text segment )。这些函数都会通过一个隐式传入的

  如上所示,所有的非静态成员变量都和前面的例子一样,按照声明顺序从上到下排列在栈中。

  静态成员变量的内存会被分配在数据段( data segment )。在代码中,想要访问静态成员变量需要使用作用域解析运算符(

  ),但在编译好的代码中却是没有作用域和命名空间的。这是因为编译器通过名称修饰( name managling )来让所有对这些变量的访问都变为通过绝对或相对地址进行。关于名称修饰的信息可以阅读 IBM 文章IBM Documentation。

  静态函数会被放在代码段中,可以使用作用域运算符进行调用。静态函数的参数表中并不会包含

  对于 virtual 关键字,编译器会自动为其在虚拟表(virtual table) 中插入一个指针(

  ),该指针在内存中和对象放在一起。所以对于 virtual 函数的直接调用会被转换为间接调用(即在virtual 函数内部是如何运行的?一文中提到过的动态调度)。通常,编译器会为每个类在数据段中静态地创建虚拟表,但实际情况取决于具体的编译器实现。

  对象的指针,该对象包含与当前类及基类(若存在)的 DAG (有向无环图,Directed Acyclic Graph )相关信息。

  在继承模型中,基类和成员变量类都属于派生类的子对象。因此派生类对象的内存布局是像上面这样的。

  不管后续的派生关系如何,不可变区域中的数据都会和对象的起始点维持一个固定的偏移值

  共享区域会包含一个虚基类,其位置会受到后续派生和具体的派生顺序的影响。具体内容参见该文:How Does Virtual Base Class Works Internally? – Vishal Chovatiya

电脑内存录入:admin    责任编辑:admin 
  • 上一个电脑内存:

  • 下一个电脑内存: 没有了
  •  
     栏目文章
    普通电脑内存 不同场景下的 C++ 对象内存布局(英文博客翻译… (08-25)
    普通电脑内存 原神40内存条不能为read怎么办40内存条不能为… (08-25)
    普通电脑内存 随机存储器俗称“内存条”它的英语缩写是:RA… (08-25)
    普通电脑内存 电脑开机显示蓝屏英文怎么处理 (08-25)
    普通电脑内存 Win10专业版系统C盘虚拟内存如何设置【详情】 (08-25)
    普通电脑内存 Windows11内存完整性无法打开怎么办 Windows1… (08-25)
    普通电脑内存 酷睿轻薄本也能运行大语言模型英特尔推动 PC … (08-25)
    普通电脑内存 Win7系统该内存不能为writtenread该怎么办【详… (08-25)
    普通电脑内存 《Gunner HEAT PC》配置要求是什么?steam配置… (08-25)
    普通电脑内存 “纯血鸿蒙”即将到来 (08-24)
    普通电脑内存 vdi_电子产品世界 (08-24)
    普通电脑内存 刺客信条大革命 游戏中突然卡住解决方法 760设… (08-24)
    普通电脑内存 暗黑破坏神4内存不足怎么办 暗黑4内存不足解决… (08-24)
    普通电脑内存 英伟达技术_电子发烧友网 (08-24)
    普通电脑内存 中报]纳芯微(688052):2023年半年度报告 (08-24)
    普通电脑内存 中报]金山办公(688111):金山办公2023年半年度… (08-24)
    普通电脑内存 消息称三星获得 AMD HBM3 内存订单为其 MI300… (08-24)
    普通电脑内存 中报]上海贝岭(600171):上海贝岭2023年半年度… (08-24)
    普通电脑内存 中报]澜起科技(688008):澜起科技2023年半年度… (08-24)
    普通电脑内存 科技昨夜今晨 0816:苹果 5 亿美元“iPhone 电… (08-23)