鱼C论坛

 找回密码
 立即注册
查看: 2701|回复: 11

[已解决]C语言初学

[复制链接]
发表于 2021-6-26 23:42:49 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
为什么小甲鱼的long double是12我这个出来是16啊,哪位大哥能教下
最佳答案
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
QQ图片20210626234103.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-6-27 01:08:45 | 显示全部楼层
因为c语言的语法比较宽松,对于数据类型的大小并没有具体的定义,所以同一种数据会因为系统或者编译器的不同二大小不一样,而且最值得注意的是你用devc++的时候文件的后缀名是.cpp,和c语言不一样c++根据32位64位不同对于数据类型的大小是有具体定义的,和小甲鱼的比较你要把文件的后缀名从.cpp改成.c才行,这方面专业点的解释可以看Twilight6大佬的回复
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-6-27 14:11:29 | 显示全部楼层
因为不同的编译器,结果不一样
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-6-27 23:22:25 | 显示全部楼层
x-zz 发表于 2021-6-27 14:11
因为不同的编译器,结果不一样

哦哦,谢谢啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-6-27 23:23:05 | 显示全部楼层
王逗比666 发表于 2021-6-27 01:08
因为c语言的语法比较宽松,对于数据类型的大小并没有具体的定义,所以同一种数据会因为系统或者编译器的不 ...

我现在用的DEV学的C语言行吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-6-27 23:24:49 | 显示全部楼层
Twilight6 发表于 2021-6-26 23:58
————以上转至百度知道:https://zhidao.baidu.com/question/46482588.html

哦哦,谢谢啦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-6-28 11:13:33 | 显示全部楼层
orz蛋 发表于 2021-6-27 23:23
我现在用的DEV学的C语言行吗

可以的,问题并不在于你用的是不是devc,是你新建的文件的后缀名是xxx.cpp,c语言的后缀名是xx.c,xxx.cpp是c++的文件
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-15 22:34:04 | 显示全部楼层
王逗比666 发表于 2021-6-27 01:08
因为c语言的语法比较宽松,对于数据类型的大小并没有具体的定义,所以同一种数据会因为系统或者编译器的不 ...

谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-15 22:34:42 | 显示全部楼层
王逗比666 发表于 2021-6-28 11:13
可以的,问题并不在于你用的是不是devc,是你新建的文件的后缀名是xxx.cpp,c语言的后缀名是xx.c,xxx.cp ...

那能不能直接通过改后缀来完成转换?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-15 23:32:33 | 显示全部楼层
orz蛋 发表于 2021-8-15 22:34
那能不能直接通过改后缀来完成转换?

如果你的代码并没有c/c++独有的特性的话是可以的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-21 22:39:14 | 显示全部楼层
王逗比666 发表于 2021-8-15 23:32
如果你的代码并没有c/c++独有的特性的话是可以的

哦哦,好的,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-22 01:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表