1. 程式人生 > >32位64位作業系統基本資料型別位元組大小 2014-03-12 09:44

32位64位作業系統基本資料型別位元組大小 2014-03-12 09:44

int型字長問題:

① C/C++規定int字長和機器字長相同;

② 作業系統字長和機器字長未必一致;

③ 編譯器根據作業系統字長來定義int字長;

  由上面三點可知,在一些沒有作業系統的嵌入式計算機系統上,int的長度與處理器字長一致;有操作

系統時,作業系統的字長與處理器的字長不一定一致,此時編譯器根據作業系統的字長來定義int字長:"

比如你在64位機器上執行DOS16系統,那麼所有for dos16的C/C++編譯器中int都是16位的;在64位機器上

執行win32系統,那麼所有for win32的C/C++編譯器中int都是32位的"

常見基本型別的位元組大小

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個位元組

轉自:http://blog.csdn.net/huyisu/article/details/17604983