啊哈哈君233 发表于 2017-7-29 20:31:54

利用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试试吧

ba21 发表于 2017-7-29 21:24:15

http://blog.csdn.net/txl199106/article/details/38616235

丶忘却的年少o 发表于 2017-7-30 08:04:59

long long int和_Bool是C99新增的,有些编译器没更新C99标准是会报错的。
long double:未规定long double的确切精度,对于不同平台有不同的长度。long double的精度大于或等于double的精度

Twifall 发表于 2017-8-3 14:41:01

在VC6.0里面规定了,long double = double 的,long = int
你可以看看,而且应该在小甲鱼视频数据类型里面讲过C++,包括C并没有规定固定的内存字节,只是规定了
short<=int <= long <= long long
浮点型类似
页: [1]
查看完整版本: 利用VC++6.0编译sizeof(long double)为什么结果还是8?