Wieso hat die Funktion "int main()" kein Semikolon - weil es da nicht beendet wird oder ist das eine falsche Annahme -- C/C++?

... komplette Frage anzeigen

2 Antworten

Ich weiß nicht genau, was du meinst.

  1. Bei einer forward declaration kommt ein Semikolon hin: void main(void);
  2. Bei der Definition kommt kein Semikolon hin: void main(void){/* Anweisungen */}
  3. Beim Aufruf kommt ein Semikolon hin: main();
Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von ralphdieter
03.11.2016, 11:51

Ich weiß nicht genau, was du meinst.

Wahrscheinlich verwechselt er Funktions- mit Klassen-Definitionen.  Bei letzteren muss(*) ein Semikolon hinter den Rumpf:

struct Point { int x,y; } ;

(*) Zwischen } und ; können natürlich auch Variablen instantiiert werden:

struct Point { int x,y; } start={0,0};

Bei Funktionen ist dies unsinnig; deshalb haben sich K&R den Strichpunkt hier gespart.

0

In C++ schreibst du die Definition der Funktion main() und die haben nie ein Semikolon.

Der Aufruf würde durchaus ein Semikolon verlangen, aber den macht das Programm beim Aufruf selbst.

Antwort bewerten Vielen Dank für Deine Bewertung