Myślałem, że znam składni C całkiem dobrze, dopóki nie próbowałem skompilować następujący kod:Co to jest deklaracja przekazania parametru?
void f(int i; double x)
{
}
spodziewałem kompilator do podróży, i to zrobił, ale nie pojawia się komunikat o błędzie:
test.c:1:14: error: parameter ‘i’ has just a forward declaration
następnie próbowałem
void fun(int i; i)
{
}
który kończy się niepowodzeniem z
test.c:1:17: error: expected declaration specifiers or ‘...’ before ‘i’
i wreszcie
void fun(int i; int i)
{
}
które, ku mojemu zdziwieniu, udaje!
Nigdy nie widziałem tej składni w prawdziwym kodzie C. Jakie jest jego zastosowanie?
Co jest Twój kompilator? Chyba jest to błąd lub rozszerzenie (nie kompiluje się z _clang 2.8_). – md5
@ md5: GCC. Przepuszcza również '-std = c99'; Chyba powinienem był spróbować CLang, które wycieczki. –