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類,
64位與32位程式設計的資料型別區別
c c 僅僅定義了這些基本資料型別之間的關係,並沒有定義嚴格定義它們的字長。在不同的平台上,根據編譯器不同的實現,它們的字長如下表所示 資料型別 lp64 ilp64 llp64 ilp32 lp32 char 8 8 88 8 short 16 16 16 16 16 int32 n a 32 n...
32位和64位系統中資料型別區別
c語言中基本資料型別的長度 32位下 char 1個位元組 不變 指標變數 4個位元組 32位機的定址空間是4個位元組。同理64位編譯器 變化 short int 2個位元組 不變 int 4個位元組 不變 unsigned int 4個位元組 不變 float 4個位元組 不變 double 8個...
32位或64位基本資料型別大小
int型字長問題 c c 規定int字長和機器字長相同 作業系統字長和機器字長未必一致 編譯器根據作業系統字長來定義int字長 由上面三點可知,在一些沒有作業系統的嵌入式計算機系統上,int的長度與處理器字長一致 有操作 系統時,作業系統的字長與處理器的字長不一定一致,此時編譯器根據作業系統的字長來...