Я читал, что каждая функция в C должна иметь прототип, а также, что если функция принимает аргументы или возвращает значение, их типы данных должны быть упомянуты как в прототипе, так и в определении. Однако недавно я попробовал фрагмент кода, который включал вызов пользовательской функции, которая не удовлетворяла вышеуказанным требованиям. Тем не менее, программа не выдавала никаких ошибок, хотя результат был неверным. Кто-нибудь может дать объяснение?
Код, который я пробовал, был следующим:
#include<stdio.h>
int main(){
printf("%f",sum(3.2, 5.6));
return 0;
}
sum(a, b){
return a+b;
}
Код компилируется и успешно выполняется с выходным значением 0,000000. Процесс завершается с кодом завершения 0. Я запускал код на различных онлайн-компиляторах.