从c中的函数返回float类型

MOP*_*MOP 5 c floating-point

我有这个简单的代码:

int main()
{
    float x = foo();
    printf("returned value: %f", x);
    return 0;
}

float foo ()
{
    return 5;
}
Run Code Online (Sandbox Code Playgroud)

当我运行代码时,输​​出为:"返回值:-858993472.000000"

有人可以向我解释为什么返回值不是5.000000?

CB *_*ley 18

在调用函数时,范围内没有原型.这意味着假定函数返回int.在第一次调用函数之前添加原型.

float f(void);
Run Code Online (Sandbox Code Playgroud)

  • ...或者在*`main()`之前定义`foo()`*.@MOP:您应该调整编译器的警告级别设置; 大多数编译器都会警告这个不要压制或忽略警告.我建议你也将警告设置为错误(GCC:-Wall -Werror,VC++\W4\Wx). (2认同)