...

ал, что разница в том, чтоdeclaration не имеет типов параметров ...

Почему это работает:

int fuc();

int fuc(int i) {
  printf("%d", i);
  return 0;
}

но это не скомпилируется:

int fuc();

int fuc(float f) {
  printf("%f", f);
  return 0;
}

с сообщением:

ошибка: конфликтующие типы для "fuc". примечание: тип аргумента, который имеет продвижение по умолчанию, не может соответствовать пустому объявлению списка имен параметров

Ответы на вопрос(1)

Ваш ответ на вопрос