struct NSObject_IMPL {
Class isa;
};
struct Person_IMPL {
struct NSObject_IMPL NSObject_IVARS; // 8
int _age; // 4
}; // 16 内存对齐:结构体的大小必须是最大成员大小的倍数
struct Student_IMPL {
struct Person_IMPL Person_IVARS; // 16
int _no; // 4
}; // 16
struct NSObject_IMPL {
Class isa;
};
struct Person_IMPL {
struct NSObject_IMPL NSObject_IVARS; // 8
int _age; // 4
int _height; // 4
int _no; // 4
}; // 24
Person *p = [[Person alloc] init];
NSLog(@"%zd %zd",class_getInstanceSize([Person class]), // 24
malloc_size((__bridge const void *)(p))); // 32