zoukankan      html  css  js  c++  java
  • 类型内存模型(对象内存模型)

    类型的内存模型的3个问题:

    1、包含什么:附加信息

    2、怎么布局:内存对齐

    3、使用场景:怎么使用附加信息

    一、包含什么?

    除了包含结构类型的显式成员变量外,类型内存模型需要解决附加信息的引入问题

    1、附加信息(Opaque)有哪些:

    类型信息、函数信息、继承信息、内存计数等;

    2、为什么有附加信息:

    1)解决多态问题;

    2)解决类型运行时信息问题;

    3)解决类型的运行时内存管理问题(引用计数)。

    3、附加信息怎么包含进去:三个方案:

    1)类型本身隐式自带(Opaque成员);

    2)编译器定制处理:编译器针对类型引入(c++的虚函数表);

    3)编译器引入中间容器类型:swift的存在容器;

    二、怎么布局:

    详见内存布局;

    三、怎么使用:

    1、多态机制:

    函数的调用解释:

    1)虚函数表的查找、绑定与调用;

    2)类型信息的查找与使用

    2、内存模型的内存自管理:

    引用计数;

    3、容器中间类型的使用:

    编译器实现,开发者不可见;类型的打包、解包

    4、运行时类型信息:

    开发者调用类型信息接口获取;

  • 相关阅读:
    hlgoj 1766 Cubing
    Reverse Linked List
    String to Integer
    Bitwise AND of Numbers Range
    Best Time to Buy and Sell Stock III
    First Missing Positive
    Permutation Sequence
    Next Permutation
    Gray Code
    Number of Islands
  • 原文地址:https://www.cnblogs.com/feng9exe/p/10579546.html
Copyright © 2011-2022 走看看