平台: 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个字节
版权声明:本文为博主原创文章,未经博主允许不得转载。