|
发表于 2021-6-26 23:58:18
|
显示全部楼层
本楼为最佳答案
double和long double都是ANSIC标准的浮点数。但ANSIC并未规定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字节的呢。
————以上转至百度知道:https://zhidao.baidu.com/question/46482588.html |
|