短,int,long,float,double long,double,char的大小

我想找出(short / int / long / float / double / long double / char)大小,所以我写了下面的代码:

printf("shorttt%dn", sizeof(short));    
printf("inttt%dn", sizeof(int));
printf("longtt%dn", sizeof(long));
printf("floattt%dn", sizeof(float));
printf("doublett%dn", sizeof(double));  
printf("long doublet%dn", sizeof(long double));    
printf("chartt%dn", sizeof(char));   

但输出是:

type            bytes
short           512
int             512
long            1024
float           1024
double          1024
long double     1024
char            256

为什么字节数如此之大?

它不应该是2,8,...?


sizeof值为size_t ,而不是int 。 所以%d是不合适的; 你正在调用未定义的行为。

要正确打印size_t类型的数据,我建议使用printf("%zun", sizeof(float)); 等等


使用:格式说明符long unsigned int。 它会正常工作。 例如:printf(“sizeof(long double)=% lu n”,sizeof(long double));

答:16

链接地址: http://www.djcxy.com/p/58335.html

上一篇: Size of short, int, long, float, double long, double, char

下一篇: Number suffix for short