Wieso {}Blöcke mit ; schließen?
-
hustbaer schrieb:
drakon schrieb:
Vom philosophischen Standpunkt aus gesehen wären gar keine Semikolons nötig, aber da das damals so definiert wurde musst du das halt einfach lernen (der Compiler hilft dir da stark dabei).
Das würde aber die Grammatik stark einschränken.
Außerdem hat man es in C++ so gemacht und dann ist es gut.
-
drakon schrieb:
void foo() { { int i; } // kein ; } // kein ;Erlaubt wäre es aber in beiden Fällen.
Nein. Es gibt nur die leere Anweisung.
;Es gibt nicht die leere Deklaration.
;Also darf es eben nicht hinter die Funktion.
-
hustbaer schrieb:
drakon schrieb:
Vom philosophischen Standpunkt aus gesehen wären gar keine Semikolons nötig, aber da das damals so definiert wurde musst du das halt einfach lernen (der Compiler hilft dir da stark dabei).
Das würde aber die Grammatik stark einschränken.
Ich denke nicht so stark, wie man zuerst meint.
Ich ziehe hier auch gern mal wieder Eiffel als Beispiel an, wo ich richtig erstaunt war wie wenig man Semikolons wirklich braucht. Und wenn man wirklich mal mehrere Anweisungen in einer Zeile haben will kann man trotzdem noch Semikolons einfügen, aber meistens ist das überhaupt nicht notwendig.
Mir fällt im Moment auch kein wirklich realistisches Beispiel ein, wo man die Semikolons wirklich braucht (ich meine jetzt nicht die bei for Schleifen etc.)@666.22
Nur weil es C++ vor x Jahren einmal gemacht hat heisst das gleich, dass es gut ist?!@volkard:
Stimmt. Da habe ich nicht aufgepasst.
-
drakon schrieb:
@666.22
Nur weil es C++ vor x Jahren einmal gemacht hat heisst das gleich, dass es gut ist?!Nicht??

-
Ich weiss man sollte Trolle nicht füttern, aber hier haste nen Keks.
-
drakon schrieb:
Ich weiss man sollte Trolle nicht füttern, aber hier haste nen Keks.
Was ist das denn für ein unqualifizierter Kommentar?
-
basi schrieb:
drakon schrieb:
Ich weiss man sollte Trolle nicht füttern, aber hier haste nen Keks.
Was ist das denn für ein unqualifizierter Kommentar?
Dumme Fragen ergeben dumme Antworten und der letzte Kommentar von 666.22 (auch der erste) sind offensichtliche Trollversuche, auf welche man normalerweise nichteinmal eingeht.
-
drakon schrieb:
In C++ braucht es ein ';' nach jeder Definition.
Nicht nach jeder. Nach Funktions- oder Namensraumdefinitionen zum Beispiel nicht.
-
Nexus schrieb:
drakon schrieb:
In C++ braucht es ein ';' nach jeder Definition.
Nicht nach jeder. Nach Funktions- oder Namensraumdefinitionen zum Beispiel nicht.
Jaja, ich weiss. Ich wollte es ihm aber nicht zu kompliziert machen.
(Die Funktionsdefinition habe ich ja noch als Ausnahme genannt und namespaces kommen eher selten vor).Ich denke Definitionen als Faustregel und den beiden gezeigten Ausnahmen und man hat einen Grossteil der Fälle abgedeckt. All die anderen Fälle muss man sich einfach merken. Wenn man es genau will, muss man fast den Standard zitieren, was einem Anfänger wohl kaum etwas bringt.
-
Schlage vor: Typedefinition.