32位64位作業系統基本資料型別位元組大小

2021-07-03 13:09:14 字數 1218 閱讀 2454

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

總的來說,跟編譯器有很大關係,不同的系統,不同的編譯器,定義的型別值可能會有不同,所以,不應該困惑。

32位64位作業系統基本資料型別位元組大小

int型字長問題 c c 規定int字長和機器字長相同 作業系統字長和機器字長未必一致 編譯器根據作業系統字長來定義int字長 由上面三點可知,在一些沒有作業系統的嵌入式計算機系統上,int的長度與處理器字長一致 有操作 系統時,作業系統的字長與處理器的字長不一定一致,此時編譯器根據作業系統的字長來...

32位64位作業系統基本資料型別位元組大小

int型字長問題 c c 規定int字長和機器字長相同 作業系統字長和機器字長未必一致 編譯器根據作業系統字長來定義int字長 由上面三點可知,在一些沒有作業系統的嵌入式計算機系統上,int的長度與處理器字長一致 有操作 系統時,作業系統的字長與處理器的字長不一定一致,此時編譯器根據作業系統的字長來...

32位64位作業系統基本資料型別位元組大小

int型字長問題 c c 規定int字長和機器字長相同 作業系統字長和機器字長未必一致 編譯器根據作業系統字長來定義int字長 由上面三點可知,在一些沒有作業系統的嵌入式計算機系統上,int的長度與處理器字長一致 有操作 系統時,作業系統的字長與處理器的字長不一定一致,此時編譯器根據作業系統的字長來...