¿Por qué no se muestra el error de - llamar a la función antes de ser declarada?

main()
{
    f();
}
int f( int i, float fl)
{
    printf("function");
}

¿Por qué el código anterior se ejecuta correctamente en 'C' e imprimefunction cuando se debe reportar un error, comof () Se llama antes de que se declare.

Cuando se ejecuta correctamente en 'C', entonces por qué no en 'C ++'. Cuando se ejecuta en c ++ se muestra:error: 'f' was not declared in this scope

Si es debido a que algo así como el compilador supone que una función no declarada devuelve un int y acepta un número no especificado de argumentos, entonces ¿por qué se ejecuta correctamente para la siguiente función (es decir, cuando se devuelve el tipo de retorno avacío en lugar deEn t ?

void f (int i, float fl)

{

    printf("function");

}

Respuestas a la pregunta(3)

Su respuesta a la pregunta