在可变参数函数中将 Float 参数提升为 Double
在之前的讨论中,注意到 printf() 将 float 参数提升为在接受之前加倍。这就提出了一个问题:所有可变参数函数都执行此提升吗?
可变参数提升
是的,根据 C99 和 C 标准,浮点参数传递给可变参数功能提升为双倍。
标准规范
关于可变参数函数转换的 cppreference
cppreference 提供C 中可变参数函数默认转换的摘要:
起源促销
尽管存在潜在的缺点,但此促销是为了与 K&R C 标准兼容而在 C 中引入的。正如 C 基本原理所述:
“为了与过去的实践兼容,在没有原型声明的情况下,所有参数提升都按照 K&R 中的描述进行,包括并不总是理想的将浮点数提升为双倍。”
以上是所有可变参数函数都会将'float”参数提升为'double”吗?的详细内容。更多信息请关注PHP中文网其他相关文章!