Object C 內存分配大小

     雖然作iOS開發也有一段時間,但一直疲於趕項目,並未仔細研究OC,可貴今日比較閒又拿起OC資料研讀一番,發現效果很好,不過也感慨技術更新實在過快,發現以前的資料已經和現行技術有些出入。spa

     在某資料上對內存這一塊講解時,當給一個對象分配內存時,其內存的大小是由這個類的成員變量決定,好比:.net

@interface  Car : NSObjectorm

{對象

    int year;繼承

    NSString *make;內存

    NSString *model;開發

}get

@end it

對於這個Car類,該資料的輸出結果是:test

NSObject *object = [[NSObject alloc] init]; 

Car *testCar = [[Car alloc] init];

NSLog(@"%lu", sizeof(object)); // 4B

NSLog(@"%lu", sizeof(testCar)); //16B

講解的緣由是「Car類繼承NSobject,因此首先有4B的內存,而後3個成員變量各佔4B,也就是4B + 3 * 4B = 16B」。

可是最後經過實踐發現,其輸出結果:

NSLog(@"%lu", sizeof(object)); // 8B

NSLog(@"%lu", sizeof(testCar)); //8B

都爲8B.

相關文章
相關標籤/搜索