co 基础 - 对象的本质

93 阅读1分钟

c++ 代码

struct NSObjc_IMPL {
    Class isa;
};

struct Person_IMPL {
    struct NSObject_IMPL NSOBJCT_IVARS;
    int _age;  // 4
    int _height; // 4
}

@interface Person:NSObjc 
     int _age;
     int _height;
@end
 
类的本质是一个结构体 




手打

runtime 源码中 allockWithZoon 方法 苹果操作系统内存对齐 一个类 会按照 最低16 的倍数来多对齐

class_getInstenceSize 返回 实例对象class 最少需要多少空间 sizeOf 计算 Class 的大小

malloc_size 返回系统实际分配给 对象的 内存大小

其他操作系统也有类似的 方法 问题

// Linux // gnu 全称是 gnu is not unix 开源组织