利用VC++6.0编译sizeof(long double)为什么结果还是8?
源代码如下:#include<stdio.h>
void main()
{
printf("int:%d\n",sizeof(int));
printf("short int:%d\n",sizeof(short int));
printf("long int:%d\n",sizeof(long int));
// printf("long long int:%d",sizeof(long long));
printf("float:%d\n",sizeof(float));
printf("double:%d\n",sizeof(double));
printf("long double:%d\n",sizeof(long double));
printf("char:%d\n",sizeof(char));
// printf("_Bool:%d",sizeof(_Bool));
}
我用的VC++6.0编译器,其中 long long int和_Bool还报错。。。。
long double为什么是8啊??和double一样了。
我去拿VS试试吧 http://blog.csdn.net/txl199106/article/details/38616235 long long int和_Bool是C99新增的,有些编译器没更新C99标准是会报错的。
long double:未规定long double的确切精度,对于不同平台有不同的长度。long double的精度大于或等于double的精度 在VC6.0里面规定了,long double = double 的,long = int
你可以看看,而且应该在小甲鱼视频数据类型里面讲过C++,包括C并没有规定固定的内存字节,只是规定了
short<=int <= long <= long long
浮点型类似
页:
[1]