Andreas schrieb:
> C Compiler versuchen nun mal krampfhaft, den Rest der Datei hinter einem
> einzelnen Fehler zu interpretieren und schmeißt einen mit
> Fehlermeldungen darüber zu, nur weil irgendwo mal ein ";" fehlt, während
> Pascal das meist sehr genau auf den Punkt bringt und auch noch gezielt
> sagt, woran es hakt.
Nö.
Das ist nicht das Problem.
Das Problem ist, dass C es dir erlaubt an dieser Stelle tatsächlich eine
Strukturdeklaration zu machen. Bzw. umgekehrt an eine
Strukturdeklaration gleich Variablen bzw Funktionen mit diesem Datentyp
zu definieren
struct Point
{
double X;
double Y;
} CenterPoint, TrianglePoints[3], MyPoint, *pPoints, PointArray[20];
struct ReturnType
{
int Code;
const char* ErrorMessage;
} myFunction( int a, int b, int c );
Das alles ist in C völlig legal. C erlaubt eben viele Dinge und ist
nichts für Leute, mit denen noch die Tante Lulu gehen muss.
Das C eine kryptische Syntax hat, ist unbestritten. Mit einem einzigen
falschen Zeichen kannst du aus einem gültigen Programm ein anderes
gültiges Programm machen, das etwas komplett anderes macht.
Es erlaubt aber auch im Gegenzug elegante Formulierungen, die du so
nirgends wo anders findest. Und es zeigt auch, dass es wichtig ist,
seine Sprache von der Pieke auf systematisch zu lernen.
Und letzten Endes liegt es am Programmierer selbst, was er aus den
Möglichkeiten macht.
>
> Aber ein wahrer C-Programmierer braucht das wohl und ist es auch nicht
> anderes gewohnt.
Für einen wahren C Programmierer ist diese Fehlermeldung überhaupt nicht
kryptisch sondern 100% auf den Punkt gebracht. Eine Funktion kann nun
mal keine 2 Datentypen für den Return Wert haben.