C語言型別佔多少位元組

2021-07-04 22:19:19 字數 1079 閱讀 9594

和機器字長及編譯器有關係:

所以,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個位元組

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個位元組

列舉佔多少位元組?

網上暫時只找到了這種描述 標準c並沒有明確規定列舉型別占用空間的大小,標準中只是說 列舉型別的尺寸是以能夠容納最大枚舉子的值的整數的尺寸 同時標準中也說明了 列舉型別中的枚舉子的值必須要能夠用乙個int型別表述 也就是說,列舉型別的尺寸不能夠超過int型別的尺寸,但是是不是必須和int型別具有相同的...

struct佔多少位元組例題

1 位元組對齊的細節和編譯器實現相關,但一般而言,如在windows下,就vc而言,滿足一下三個準則 1 結構體變數的首位址能夠被其最寬基本型別成員的大小所整除 2 結構體每個成員相對於結構體首位址的偏移量 offset 都是成員大小的整數倍,如有需要編譯器會在成員之間加上填充位元組 interna...

乙個漢字佔多少位元組

1 gbk編碼,乙個漢字佔2個位元組。2 utf 16編碼,通常漢字佔2個位元組,cjkv擴充套件b區 擴充套件c區 擴充套件d區中的漢字佔4個位元組 一般字元的unicode範圍是u 0000至u ffff,而這些擴充套件部分的範圍大於u 20000,因而要用兩個utf 16 3 utf 8編碼是...