Я думал, что хорошо знаю синтаксис C, пока не попытаюсь скомпилировать следующий код:
void f(int i; double x)
{
}
Я ожидал, что компилятор отключится, и это произошло, но я не получил сообщение об ошибке:
test.c:1:14: error: parameter ‘i’ has just a forward declaration
Затем я попробовал
void fun(int i; i)
{
}
который терпит неудачу с
test.c:1:17: error: expected declaration specifiers or ‘...’ before ‘i’
и, наконец,
void fun(int i; int i)
{
}
который, к моему удивлению, преуспевает!
Я никогда не видел этот синтаксис в реальном коде C. Каково его использование?