C語言變數長度在32位和64位處理器上的關係

2021-07-16 07:46:34 字數 707 閱讀 1732

理論上來講 我覺得資料型別的位元組數應該是由cpu決定的,但是實際上

主要由編譯器決定(佔多少位由編譯器在編譯期間說了算)。

常用資料型別對應位元組數

可用如sizeof(char),sizeof(char*)等得出

32位編譯器:

char :1個位元組

char*(即指標變數):

4個位元組(32位的定址空間是2^32, 即32個bit,也就是4個位元組。同理64位編譯器)

short int : 2個位元組

int:  4個位元組

unsigned int : 4個位元組

float:  4個位元組

double:   8個位元組

long:  

4個位元組

long long:  8個位元組

unsigned long:  

4個位元組

64位編譯器:

char :1個位元組

char*(即指標變數):

8個位元組

short int : 2個位元組

int:  4個位元組

unsigned int : 4個位元組

float:  4個位元組

double:   8個位元組

long:  

8個位元組

long long:  8個位元組

unsigned long:  

8個位元組

C語言 32位,64位機器sizeof區別

float,double 採用ieee標準浮點數格式,格式固定float 32bit,double 64bit int一般和cpu暫存器長度有關,不過也和編譯器,彙編器有關 由於c c 標準沒有規定整數型別的固定長度。同一cpu不同作業系統和編譯器,對於int 型別規定的長度是不同的 於是為了區別這...

C語言 32位,64位機器sizeof區別

float,double 採用ieee標準浮點數格式,格式固定float 32bit,double 64bit int一般和cpu暫存器長度有關,不過也和編譯器,彙編器有關 由於c c 標準沒有規定整數型別的固定長度。同一cpu不同作業系統和編譯器,對於int 型別規定的長度是不同的 於是為了區別這...

32位和64位各種資料型別長度

一 64位系統和32位有什麼區別?1 64bit cpu擁有更大的定址能力,最大支援到16gb記憶體,而32bit只支援4g記憶體 2 64位cpu一次可提取64位資料,比32位提高了一倍,理論上效能會提公升1倍。但這是建立在64bit作業系統,64bit軟體的基礎上的。什麼是64位處理器?之所以叫...