各個編譯器上位元組為什麼不同
發布時間: 2024-01-24 15:39:47
int所佔的位元組數是根據要運行的系統架構決定的,察清編譯器決定了程序要輸出的對應架構,對於不凱判同的架構,int占的位元組數不同。
1、16位編譯器
char :1個位元組
char*(即指針變數盯沒改): 2個位元組
short int : 2個位元組
int: 2個位元組
unsigned int : 2個位元組
float: 4個位元組
double: 8個位元組
long: 4個位元組
long long: 8個位元組
unsigned long: 4個位元組
2、32位編譯器
char :1個位元組
char*: 4個位元組
short int : 2個位元組
int: 4個位元組
unsigned int : 4個位元組
float: 4個位元組
double: 8個位元組
long: 4個位元組
long long: 8個位元組
unsigned long: 4個位元組
B. 不同編譯器為什麼對數據分配的存儲單元大小不同,分配的大小與程序運行有關嗎
額,不同的編譯器對同一種類型變數分配的存儲單元大小不同。。。不同就不同了。。。沒有為什麼。。。畢竟當初沒有統一的標准。不過都是微小的差別,影響不大。我們不需要知道為什麼不同,只要知道它們分配的確實不同就行了。
分配的大小與程序運行有關的。同樣是一個int型,在VC下被分配4位元組,在TC下被分配2位元組。實際程序運行的時候,也是前者吃掉4位元組的內存,後者吃掉2位元組的內存。
熱點內容