筆記 關於c語言中各種資料型別所佔位元組。

2021-08-07 07:24:29 字數 1008 閱讀 3139

struct st

;int sz=sizeof(struct st);

先上題,如上,在64位處理器執行後sz的值為什麼?

考點:1.struct的對齊原則,注意不同的編譯器有不同的效果。

2。不同的資料型別在32位和64位下所佔位元組的區別

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

此處指標先占用8位元組。int占用4位元組,滿足要求不用補齊,char占用乙個位元組,同時總的位元組數必須滿足8的倍數即16。

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

參考文獻:

C語言中各種資料型別長度

c語言的基本資料型別有以下幾個 int 整型 char 字元型 float 單精度浮點型 double 雙精度浮點型 另外,在基本資料型別基礎上附加一些限定詞,得到擴充的資料型別。short,long可以應用到整型,unsigned可以應用到整型和字元型 short int 或short 短整型 l...

C語言中各種資料型別的大小

c語言 1.幾條規則 1 char型別一般是8bit,但ansi c裡沒有硬性規定其長度,某些嵌入式編譯器可能是16bit 2 short和long型別的長度不相同 3 int型別通常同具體機器的物理字長相同 4 short通常是16bits,int通常是16bits or 32bits每種編譯器可...

C語言中各種資料型別的大小

c語言 1.幾條規則 1 char型別一般是8bit,但ansi c裡沒有硬性規定其長度,某些嵌入式編譯器可能是16bit 2 short和long型別的長度不相同 3 int型別通常同具體機器的物理字長相同 4 short通常是16bits,int通常是16bits or 32bits每種編譯器可...