【发布时间】:2013-05-24 09:56:59
【问题描述】:
如果我尝试将float 打印为int,则此代码:
main () {
float a = 6.8f;
printf("%d", a);
}
打印 1073741824,而这段代码:
main () {
float a = 9.5f;
printf("%d", a);
}
打印 0。
输出是否未定义? %f 何时与整数一起使用,%d 何时与双精度一起使用?
【问题讨论】:
-
输出是垃圾还是未定义的操作?
-
同时调用一个函数,该函数接受可变数量的参数 (
printf()),但范围内没有原型是 UB。使用#include <stdio.h>获得正确的原型。
标签: c floating-point double output undefined-behavior