在可变参数函数中将浮点参数提升为 Double
在之前的讨论中,注意到 printf() 将浮点参数提升为在接受之前加倍。这就提出了一个问题:所有可变参数函数都执行此提升吗?
可变参数参数提升
是的,根据 C99 和 C 标准,浮点参数传递给可变参数函数提升为双精度。
标准规范
cppreference 关于可变参数函数转换
cppreference 提供了可变参数默认转换的摘要C 中的函数 :
促销起源
此促销活动于C 与 K&R C 标准兼容,尽管它有潜在的缺点。正如 C 基本原理所述:
“为了与过去的实践兼容,在没有原型声明的情况下,所有参数提升都按照 K&R 中的描述进行,包括并不总是理想的浮点数提升为双倍。”
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3