c语言函数返回值类型由什么决定?

C语言函数返回值的类型是由定义函数时所指定的函数类型决定的。

函数值的类型应当是在定义函数时指定的。在定义函数时对函数值说明的类型一般应该和return语句中的表达式类型―致,如果不―致,则以函数类型为准,即函数类型决定返回值的类型。

示例:

int fun(int a)
{
    float a=1.5;
    return a;//warning C4244: 'return' : conversion from 'float ' to 'int ', possible loss of data
}

这时实际上返回的是1而不是1.5。

推荐:《c语言教程》