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