1. 程式人生 > >【轉載】在C語言中,double、long、unsigned、int、char類型數據所占字節數

【轉載】在C語言中,double、long、unsigned、int、char類型數據所占字節數

src 有關 指針變量 none nbsp ide iso isp cli

和機器字長及編譯器有關系:
所以,int,long int,short int的寬度都可能隨編譯器而異。但有幾條鐵定的原則(ANSI/ISO制訂的): 
1 sizeof(short int)<=sizeof(int) 
2 sizeof(int)<=sizeof(long int) 
3 short int至少應為16位(2字節) 
4 long int至少應為32位。 

unsigned 是無符號的意思。

例如:

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個字節
View Code

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個字節
View Code

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語言中,double、long、unsigned、int、char類型數據所占字節數