Почему компилируется функция без параметров (по сравнению с фактическим определением функции)?
Я только что натолкнулся на чей-то C-код, который меня смущает, почему он компилируется. Есть два момента, которые я не понимаю.
Во-первых, прототип функции не имеет параметров по сравнению с фактическим определением функции. Во-вторых, параметр в определении функции не имеет типа.
#include <stdio.h>
int func();
int func(param)
{
return param;
}
int main()
{
int bla = func(10);
printf("%d", bla);
}
Почему это работает? Я проверил его в нескольких компиляторах, и он отлично работает.