gpt4 book ai didi

c - 默认参数提升

转载 作者:行者123 更新时间:2023-11-30 14:25:10 27 4
gpt4 key购买 nike

main(){
printf("%d %d",1234.5);
}

输出:0 1083394560

这是默认参数提升的情况,其中 float 变量被视为 double,然后第一个 %d 显示 0,另一个显示其余 4 个字节的值,即 1083394560。

我的问题是,如果 %d 读取前 4 个字节,那么这个程序如何执行

main()
{
printf("%f",1234.5);
}

给出了正确的输出。因为 float 也是 4 个字节,所以它的行为也应该类似于 %d

最佳答案

嗯? %f 可以“知道”作为 vararg 参数传递的 float 已被提升为更大的值 (double) 并采取相应的行动,当然。 %d 的代码不知道它应该期望提升的浮点值;它需要一个(适当提升的)int

关于c - 默认参数提升,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10647793/

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