sizeof(long double)

     据我所知,double和long double都是ANSI C标准的浮点数。但ANSI C并未规定long double的确切精度所以对于不同平台可能有不同的实现。有的是8字节,有的是10字节,有的是12字节或更多。一般来说long double的精度要高于double, 至少相等,就像int和long int一样。但同一平台也可能不一样,比如MS自己的C/C++/VC++就不一样。好像以前16位的VC++中long double用10字节,而Win32就改用了8字节,和double一样了。MS保留long double类型的库函数是为了兼容,用户能够继续使用以前编写的代码。MS也说明以后编写程序时不要再使用asinl, acosl这样的long double类型的库函数。但long double的数据类型还是要保留的,它毕竟是ANSI C标准规定的数据类型。说不定哪天他的C/C++会把long double弄成16字节的呢。

 

    我在VC6.0下用sizeof(long   double)的出来的结果是8,同double的一样;  但是在linux下有G++和VI   得到的sizeof(long   double)=12;double=8;  

阅读更多
文章标签: 平台 linux c
上一篇C++处理const类型变量与C的不同
下一篇钱能c++以 局部函数 引出 函数调用机制中疑惑解答
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭