平台: 64位编译器+LINUX+Gcc
#include<stdio.h>
main()
{
char a;
char* b;
short int c;
int d;
unsigned int e;
float f;
double g;
long h;
long long i;
unsigned long j;
printf("char a=%d
",(int)sizeof(a));
printf("char*b=%d
",(int)sizeof(b));
printf("short int c=%d
",(int)sizeof(c));
printf("int d=%d
",(int)sizeof(d));
printf("unsigned int e=%d
",(int)sizeof(e));
printf("float f=%d
",(int)sizeof(f));
printf("double g=%d
",(int)sizeof(g));
printf("long h=%d
",(int)sizeof(h));
printf("long long i=%d
",(int)sizeof(i));
printf("unsiged long j=%d
",(int)sizeof(j));
}
结果:
char a=1 char*b=8 short int c=2 int d=4 unsigned int e=4 float f=4 double g=8 long h=8 long long i=8 unsiged long j=8
其它编译器时的情况:
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个字节
short int : 2个字节
int: 4个字节
unsigned int : 4个字节
float: 4个字节
double: 8个字节
long: 4个字节
long long: 8个字节
unsigned long: 4个字节
版权声明:本文为博主原创文章,未经博主允许不得转载。