常用數據類型占用內存大小


關於這個基本的問題,很早以前就很清楚了,C標准中並沒有具體給出規定那個基本類型應該是多少字節數,而且這個也與機器、OS、編譯器有關,比如同樣是在32bits的操作系統系,VC++的編譯器下int類型為占4個字節;而tuborC下則是2個字節。


所以int,long int,short int的寬度都可能隨編譯器而異。但有幾條鐵定的原則(ANSI/ISO制訂的):


  • sizeof(short int)<=sizeof(int)

  • sizeof(int)<=sizeof(long int)

  • short int至少應為16位(2字節)

  • long int至少應為32位。


下面給出不同位數編譯器下的基本數據類型所占的字節數:



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



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


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM