orz蛋 发表于 2021-6-26 23:42:49

C语言初学

为什么小甲鱼的long double是12我这个出来是16啊,哪位大哥能教下

Twilight6 发表于 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

王逗比666 发表于 2021-6-27 01:08:45

因为c语言的语法比较宽松,对于数据类型的大小并没有具体的定义,所以同一种数据会因为系统或者编译器的不同二大小不一样,而且最值得注意的是你用devc++的时候文件的后缀名是.cpp,和c语言不一样c++根据32位64位不同对于数据类型的大小是有具体定义的,和小甲鱼的比较你要把文件的后缀名从.cpp改成.c才行,这方面专业点的解释可以看Twilight6大佬的回复{:10_256:}

x-zz 发表于 2021-6-27 14:11:29

因为不同的编译器,结果不一样

orz蛋 发表于 2021-6-27 23:22:25

x-zz 发表于 2021-6-27 14:11
因为不同的编译器,结果不一样

哦哦,谢谢啊

orz蛋 发表于 2021-6-27 23:23:05

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

我现在用的DEV学的C语言行吗

orz蛋 发表于 2021-6-27 23:24:49

Twilight6 发表于 2021-6-26 23:58
————以上转至百度知道:https://zhidao.baidu.com/question/46482588.html

哦哦,谢谢啦

王逗比666 发表于 2021-6-28 11:13:33

orz蛋 发表于 2021-6-27 23:23
我现在用的DEV学的C语言行吗

可以的,问题并不在于你用的是不是devc,是你新建的文件的后缀名是xxx.cpp,c语言的后缀名是xx.c,xxx.cpp是c++的文件

orz蛋 发表于 2021-8-15 22:34:04

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

谢谢

orz蛋 发表于 2021-8-15 22:34:42

王逗比666 发表于 2021-6-28 11:13
可以的,问题并不在于你用的是不是devc,是你新建的文件的后缀名是xxx.cpp,c语言的后缀名是xx.c,xxx.cp ...

那能不能直接通过改后缀来完成转换?

王逗比666 发表于 2021-8-15 23:32:33

orz蛋 发表于 2021-8-15 22:34
那能不能直接通过改后缀来完成转换?

如果你的代码并没有c/c++独有的特性的话是可以的

orz蛋 发表于 2021-8-21 22:39:14

王逗比666 发表于 2021-8-15 23:32
如果你的代码并没有c/c++独有的特性的话是可以的

哦哦,好的,谢谢
页: [1]
查看完整版本: C语言初学