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