gpt4 book ai didi

c - 乘以混合数据类型时,float 是否总是自动转换为 double?

转载 作者:太空狗 更新时间:2023-10-29 16:46:43 27 4
gpt4 key购买 nike

在 Steven Prata 的书“C Primer Plus”中,有一个关于类型转换的部分,其中“基本规则是”部分在规则 1 中说明:

Under K&R C, but not under current C, float is automatically converted to double.

http://www.9wy.net/onlinebook/CPrimerPlus5/ch05lev1sec5.html

有人能解释一下 but not under current C 是什么意思吗?有自动转换的 C 版本和没有的版本吗?

我想了解如果我有一个混合了 float 和 double 的表达式,我可以依靠 C 在计算时将 float 提升为 double 吗?

最佳答案

必须引用float * float格式的二进制算术运算结果。在 C 的预标准版本中,此类表达式的操作数被提升为 double 并且结果具有 double 类型。

例如,这里引用《C 语言引用手册》

If both operands are int or char, the result is int. If both are float or double, the result is double.

在 C89/90 中,这种行为已经改变,float * float 表达式产生 float 结果。

  • If either operand has type long double, the other operand is converted to long double
  • Otherwise, if either operand is double, the other operand is converted to double.
  • Otherwise, if either operand is float, the other operand is converted to float.

关于c - 乘以混合数据类型时,float 是否总是自动转换为 double?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13425012/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com