8個。double是C語言的雙精度浮點型別,對於其佔位元組數,C語言規範中,並沒有明確規定其所佔空間,只是要求double型別的整數部分的最小表示範圍為1.0E-37到 1.0E+37,小數部分至少要能精確到小數點後10位。所以在實現中,各類編譯器均採用8位元組空間實現double。
8個。double是C語言的雙精度浮點型別,對於其佔位元組數,C語言規範中,並沒有明確規定其所佔空間,只是要求double型別的整數部分的最小表示範圍為1.0E-37到 1.0E+37,小數部分至少要能精確到小數點後10位。所以在實現中,各類編譯器均採用8位元組空間實現double。
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個位元組
依據程式編譯器的不同,int定義的位元組數不同。(資料佔用記憶體儲器的大小不同)常用的微控制器編譯器,如KEIL下,51類微控制器的C語言中,int代表2個位元組(16位);
如果是32位RAM處理器的C語言中,則int代表4個位元組(32位)PIC微控制器的PICC中8位系列微控制器的C語言裡int表示16位。而不少PC端軟體的編譯器則會根據作業系統或處理器(如64位XP)把int定義為8位元組(64位)所以在多平臺上程式設計的人員需要在使用時注意。
如需定義16位數,可使用short(短、短整數型別)定義。