C++ Kurs

Aufbau eines C++ Programms

Die Themen:

Wichtiger Hinweis

Bevor wir in die C++ Programmierung einsteigen, ein wichtiger Hinweis gleich vorne weg:

AchtungDie Programmiersprache C++ unterscheidet streng zwischen Klein- und Großschreibung! So ist z.B. die Funktion sin(..) zur Sinusberechnung nicht identisch mit der Funktion Sin(...), die es so standardmäßig nicht gibt. Beachten Sie dies unbedingt wenn Sie ein Programm eingeben.

Die main() Funktion

Fangen wir mit einer grundlegenden Frage an, wenn es ums Programmieren geht: welches ist denn letztendlich die erste selbst geschriebene Anweisung die in einem Programm ausgeführt wird? Nun, jedes C++ Programm muss eine Funktion mit dem Namen main(...) enthalten und diese Funktion definiert den Einsprungspunkt in das Programm.

PgmHeaderint main()   <-- hier beginnt jedes C++ Programm!
{
  ...und hier stehen nachher die Anweisungen
}

Dies ist der allgemeine Aufbau der Funktion main(...). Nach dem Funktionskopf int main() folgt ein Paar geschweifter Klammern und innerhalb des Klammerpaares stehen die Anweisungen, die das Programm ausführen soll  Dieses 'kleine Programm' oben führt natürlich noch nichts aus, da es außer der main()-Funktion noch keine weiteren Anweisungen enthält.

DetailEs gibt noch eine zweite Form der main()-Funktion, die es erlaubt, dem Programm beim Start zusätzliche Angaben (Argumente) mitzugeben, welche dann ausgewertet werden können. Wenn Sie mehr darüber erfahren möchten, klicken Sie das Symbol links an.

Allgemeine Syntax einer Anweisung

Eine C++ Anweisung besteht im Allgemeinen aus einem Ausdruck, der in der Regel irgendwie weiter verarbeiten wird, und der mit einem Semikolon abgeschlossen wird.

Das ProgrammAnweisung über mehrere Zeilen:
value = var1 * 3.1416 +
         var2 * var2;

Mehrere Anweisungen in einer Zeile:
var1 = 10;  var2 = 0;

Im Beispiel oben wird das Ergebnis des Ausdrucks var1 * ...; einer Variablen value zugewiesen. Da eine Anweisung erst durch ein Semikolon abgeschlossen wird, folgt daraus, dass eine Anweisung sich über mehrere Zeilen erstrecken kann oder dass mehrere Anweisungen auch innerhalb einer Zeile stehen dürfen. Der Zeilenumbruch bei der Eingabe des Programms ist für den Compiler nicht relevant, er dient einzig und allein dazu, ein Programm lesbar zu gestalten. Mehr zur Formatierung eines C++ Programms nachher gleich noch.

Allerdings sollten mehrere Anweisungen innerhalb einer Zeile vermieden werden wenn Sie beabsichtigen, das Programm mit einem Debugger im Einzelschritt-Modus auszuführen. Debugger durchlaufen normalerweise ein Programm zeilenweise. Falls nun mehrere Anweisungen in einer Zeile stehen, so werden alle Anweisungen innerhalb dieser Zeile auf einmal ausgeführt, was das Suchen nach Fehlern erschweren kann. Für den Ablauf des übersetzten Programms aber ist es letztendlich unerheblich, ob Sie mehrere Anweisungen innerhalb einer Zeile eingeben oder für jede Anweisung eine getrennte Zeile verwenden.

Und nochmals, weil's so wichtig ist:

AchtungVergessen Sie nie am Ende einer Anweisung das Semikolon! Wenn Sie es einmal vergessen haben, so meldet Ihnen der Compiler unter Umständen eine ganze Reihe von Fehlern, da er das Ende der Anweisung nicht richtig erkennen kann!
HinweisWie wir später noch sehen werden, gibt es durch aus auch noch Anweisungen, die nicht mit einem Semikolon abgeschlossen werden. Dies sind aber Anweisungen die durch einen Block {...} begrenzt werden.

Source-Code Formatierung

Eigentlich könnten wir hier das Kapitel abschließen. Da wir aber lesbare Programme schreiben wollen, noch einige Worte zur Formatierung des Source-Codes.

Der C++ Compiler lässt eine formatfreie Eingabe des Source-Codes zu. So lässt sich das nachfolgende Programm zwar übersetzen, ist jedoch she unübersichtlich.

Das Programm#include <iostream>
using namespace std;
short var1; void MyFunc();
int main()
{
int var2 = 10;
if (var2==10)
{ var1=1; }
cout << "var = " << var1 << endl;
}

Damit ein Programm auch nach einiger Zeit noch ohne Schwierigkeiten lesbar ist, sollten folgende 3 Regeln eingehalten werden:

Das Programm#include <iostream>
using namespace std;

short var1;
void MyFunc();

int main()
{
   int var2 = 10;
   if (var2==10)
   {
      var1=1;
   }
   cout << "var = " << var1 << endl;

Und diese "Programm" sieht doch schon um einiges besser aus als das unformatierte.

Aber das ist noch nicht gut genug! Was hier noch fehlt, das sehen wir uns im nächsten Kapitel an.