32位,64位操作系統下基本數據類型字節大小


c語言中基本數據類型的長度:

32位下:

char :1個字節(不變)

*(指針變量): 4個字節(32位機的尋址空間是4個字節。同理64位編譯器)(變化)

short int : 2個字節(不變)

int: 4個字節(不變)

unsigned int : 4個字節(不變)

float: 4個字節(不變)

double: 8個字節(不變)

long: 4個字節(變化)

unsigned long: 4個字節(變化*,事實上就是尋址控件的地址長度數值)

long long: 8個字節(不變)


64位下:

char     1個字節(不變)

*(指針變量): 8個字節

short int : 2個字節(不變)

int: 4個字節(不變)

unsigned int : 4個字節(不變)

float: 4個字節(不變)

double: 8個字節(不變)

long: 8個字節(變化)

unsigned long: 8個字節(變化*事實上就是尋址控件的地址長度數值)

long long: 8個字節(不變)
 

除了*與long隨操作系統子長變化而變化外。其它的都固定不變(32位和64相比)

bool 1個字節  char 1個字節      int 4個字節   float 4個字節       doubl 8個字節   long long 8個字節

oc中:

64位系統下(本機不是32位系統的沒法測試):

nsstring    8位

nsinteger  8位(有符號的)

NSUInteger  8位(無符號的,沒有負數)

在oc中非常多變量其實是指針,所以64位系統下非常多都是8位的。

順便提下nsnumber,NSInteger是基礎類型,可是NSNumber是一個類。假設想要在NSMutableArray或者

NSMutableDictionary里存儲一個數值,直接用NSInteger是不行的。要先轉換成nsnumber類。


本文參考了http://blog.csdn.net/totogo2010/article/details/7655908



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM