我有一个返回类型float
的C函数。
当函数返回1.0f
时,接收者会看到1065353216
,而不是1.0
。
我的意思是,以下内容:
float Function()
{
return 1.0f;
}
float value;
value = Function();
fprintf(stderr, "Printing 1.0f: %f", value);
显示器:
1065353216
但不是:
1.0
答案 0 :(得分:15)
您在一个源文件中定义您的函数,并从另一个不提供签名的文件中调用它,使编译器认为签名为int Function()
,这会导致奇怪的结果。
您应该在float Function();
所在的文件中添加签名:printf
。
例如:
float Function();
float value;
value = Function();
fprintf(stderr, "Printing 1.0f: %f", value);
答案 1 :(得分:4)
仔细检查您的工作,因为您的实施是正确的。
答案 2 :(得分:0)
轮到我猜问题了:
你要么: