X64与X86各个类型的长度

来源:互联网 发布:在淘宝上搜春药怎么搜 编辑:程序博客网 时间:2024/06/07 03:51

struct T {

    char a;

    int b;

    char c;

};

struct E {

};

// Linux 平台 (基于 CentOS6.5)

printf("%d\n", sizeof(struct T));     //x86 12  x64 12

printf("%d\n", sizeof(struct E));     //x86 0   x64 0

printf("%d\n", sizeof(char));         //x86 1   x64 1   

printf("%d\n", sizeof(short int));    //x86 2   x64 2   

printf("%d\n", sizeof(int));          //x86 4   x64 4   

printf("%d\n", sizeof(long));         //x86 4   x64 8   

printf("%d\n", sizeof(long long));    //x86 8   x64 8   

printf("%d\n", sizeof(float));        //x86 4   x64 4   

printf("%d\n", sizeof(double));       //x86 8   x64 8   

printf("%d\n", sizeof(long double));  //x86 12  x64 16  

printf("%d\n", sizeof(void));         //x86 1   x64 1   

printf("%d\n", sizeof(void*));        //x86 4   x64 8   

printf("%d\n", sizeof(size_t));       //x86 4   x64 8  

-------------------------------------------------------------------------------------------------------

// Windows 平台 (基于 VS2013 Win10)

printf("%d\n", sizeof(struct T));     //x86 12  x64 12

printf("%d\n", sizeof(struct E));     //x86 1   x64 1

printf("%d\n", sizeof(short int));    //x86 2   x64 2

printf("%d\n", sizeof(int));          //x86 4   x64 4

printf("%d\n", sizeof(long));         //x86 4   x64 4

printf("%d\n", sizeof(long long));    //x86 8   x64 8

printf("%d\n", sizeof(float));        //x86 4   x64 4

printf("%d\n", sizeof(double));       //x86 8   x64 8

printf("%d\n", sizeof(long double));  //x86 8   x64 8

//printf("%d\n", sizeof(void));       //error C2070

printf("%d\n", sizeof(void*));        //x86 4   x64 8

printf("%d\n", sizeof(size_t));       //x86 4   x64 8

-------------------------------------------------------------------------------------------------------

类型                                   Linux x86      Linux x64  WinX86   WinX64

struct T

12

12

12

12

struct E

0

0

1

1

char

1

1

1

1

short int

2

2

2

2

int

4

4

4

4

long

4

8

4

4

long long

8

8

8

8

float

4

4

4

4

double

8

8

8

8

long double

12

16

8

8

void

1

1

-

-

void*

4

8

4

8

size_t

4

8

4

8

----------------------------------------------------------------------------------------------------------

类型

format

char

%c

signed char

%c (or %hhi for numerical output)

unsigned char

%c (or %hhu for numerical output)

short
short int
signed short
signed short int


%hi

unsigned short
unsigned short int

%hu

int
signed
signed int


%i or %d

unsigned
unsigned int

%u

long
long int
signed long
signed long int


%li or %ld

unsigned long
unsigned long int

%lu

long long
long long int
signed long long
signed long long int


%lli or %lld

unsigned long long
unsigned long long int

%llu

float

%f (promoted automatically to double for printf())

double

%f (%F)(%lf (%lF) for scanf())
%g %G
%e %E

long double

%Lf %LF
%Lg %LG
%Le %LE


阅读全文
0 0
原创粉丝点击