A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© 周易 中级黑马   /  2014-8-11 17:11  /  1165 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

c语言中的struct的内存表示:
typedef struct intStruct
{
  int i;
}intStruct;
如果我们简单的定义一个int并赋值,int i = 10;结构体和int在内存中的表示是一样的。
如果我们定义的结构体更为复杂,有多个变量,那么它们在内存中是依次排列的(不考虑大端小端的情况)。在内存中排列一致,导致intStruct和int可以相互转换。
而Object-c中NSObject的定义
@interface NSObject<NSObject>{
  Class isa;
}
@interface关键字告诉编译器:请将NSObject作为objective-c的一个类名,并将它转换成一个struct:
struct NSObject{
Class isa;
};
所有的object都是c的结构体,且NSObject集成使得某个类具备创建这个对象的能力。

1 个回复

倒序浏览
结构体貌似是类的前身。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马