我有一个返回类型的C函数float.
当函数返回时1.0f,接收器看到1065353216,而不是1.0.
我的意思是,以下内容:
float Function()
{
return 1.0f;
}
float value;
value = Function();
fprintf(stderr, "Printing 1.0f: %f", value);
Run Code Online (Sandbox Code Playgroud)
显示:
1065353216
Run Code Online (Sandbox Code Playgroud)
但不是:
1.0
Run Code Online (Sandbox Code Playgroud)
unk*_*ulu 15
您可以在一个源文件中定义您的函数,并从另一个源文件中调用它,而不提供签名,使编译器认为签名是int Function(),这会导致奇怪的结果.
您应该float Function();在文件所在的printf位置添加签名:
例如:
float Function();
float value;
value = Function();
fprintf(stderr, "Printing 1.0f: %f", value);
Run Code Online (Sandbox Code Playgroud)