32位64位下資料型別

2021-06-29 06:41:35 字數 1052 閱讀 4428

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的長度與處理器字長一致 有操作 系統時,作業系統的字長與處理器的字長不一定一致,此時編譯器根據作業系統的字長來...