Ich dachte, ich C-Syntax recht gut kannte, bis ich den folgenden Code zu kompilieren versucht:Was ist eine Parameter-Forward-Deklaration?
void f(int i; double x)
{
}
ich den Compiler auslösen erwartet, und es tat, aber ich habe nicht die Fehlermeldung:
test.c:1:14: error: parameter ‘i’ has just a forward declaration
ich habe dann versucht
void fun(int i; i)
{
}
die mit
schlägt fehlund schließlich
void fun(int i; int i)
{
}
, die viel zu meiner Überraschung gelingt!
Ich habe diese Syntax nie in realem C-Code gesehen. Was nützt es?
Was ist Dein Übersetzer? Ich denke, es ist entweder ein Bug oder eine Erweiterung (kompiliert nicht mit _clang 2.8_). – md5
@ md5: GCC. Passt auch mit '-std = c99'; Ich denke, ich hätte CLang ausprobiert, welche Reisen. –