Rheinwerk Computing < openbook > Rheinwerk Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Vorwort
Vorwort des Gutachters
1 Einstieg in C
2 Das erste Programm
3 Grundlagen
4 Formatierte Ein-/Ausgabe mit »scanf()« und »printf()«
5 Basisdatentypen
6 Operatoren
7 Typumwandlung
8 Kontrollstrukturen
9 Funktionen
10 Präprozessor-Direktiven
11 Arrays
12 Zeiger (Pointer)
13 Kommandozeilenargumente
14 Dynamische Speicherverwaltung
15 Strukturen
16 Ein-/Ausgabe-Funktionen
17 Attribute von Dateien und das Arbeiten mit Verzeichnissen (nicht ANSI C)
18 Arbeiten mit variabel langen Argumentlisten – <stdarg.h>
19 Zeitroutinen
20 Weitere Headerdateien und ihre Funktionen (ANSI C)
21 Dynamische Datenstrukturen
22 Algorithmen
23 CGI mit C
24 MySQL und C
25 Netzwerkprogrammierung und Cross–Plattform-Entwicklung
26 Paralleles Rechnen
27 Sicheres Programmieren
28 Wie geht’s jetzt weiter?
A Operatoren
B Die C-Standard-Bibliothek
Stichwort

Buch bestellen
Ihre Meinung?

Spacer
<< zurück
C von A bis Z von Jürgen Wolf
Das umfassende Handbuch
Buch: C von A bis Z

C von A bis Z
3., aktualisierte und erweiterte Auflage, geb., mit CD und Referenzkarte
1.190 S., 39,90 Euro
Rheinwerk Computing
ISBN 978-3-8362-1411-7
Pfeil 2 Das erste Programm
Pfeil 2.1 Der beste Lernerfolg
Pfeil 2.2 »Hallo Welt« in C
Pfeil 2.3 Analyse des Programms


Rheinwerk Computing - Zum Seitenanfang

2.3 Analyse des Programms topZur vorigen Überschrift

Jetzt werden wir das erste Programm in seine einzelnen Bestandteile zerlegen und es uns Schritt für Schritt ansehen.

#include <stdio.h>

include ist kein direkter Bestandteil der Sprache C, sondern ein Befehl des Präprozessors. Der Präprozessor ist ein Teil des Compilers, der nicht das Programm übersetzt, sondern kontrollierend nicht bleibende Änderungen im Programmtext vornimmt. Diese Änderungen sind jedoch nur temporär.

Präprozessorbefehle erkennen Sie am vorangestellten #-Zeichen. Kompilieren Sie das Programm noch einmal ohne #include <stdio.h>, dann sollte eine Fehlermeldung folgen, wie z. B. die folgende:

Error. function 'printf' should have a prototype.

printf() kommt doch im Programm vor? Richtig. printf() ist eine (Standard–)Funktion, die in #include <stdio.h> deklariert ist. include-Dateien nennt man auch Headerdateien. Suchen Sie das Verzeichnis INCLUDE auf Ihrem System (unter Linux ist das typischerweise /usr/include oder /usr/bin/include und bei MS Windows z. B. C:\Name_des_Compilers\include), und Sie werden noch viele andere Headerdateien darin entdecken, die später noch Verwendung finden.

Die Abkürzung stdio steht für Standard-Input/Output, also Standard-Ein-/Ausgabe. Ich werde noch öfter auf die Headerdateien eingehen, die ohnehin in jedem Programm benötigt werden. Später werden Sie auch eigene Headerdateien entwerfen und im Programm einbinden.

Sehen wir uns nun weiter die Programmausführung an:

int main(void)

Hier beginnt das Hauptprogramm. Eine main-Funktion wird immer benötigt, damit der Compiler weiß, wo er beginnen muss, das Programm zu übersetzen. Auch wenn später mehrere Module (Funktionen), also mehrere Quellcode-Dateien, kompiliert werden (d. h. zu einer ausführbaren Datei gebunden werden), benötigen Sie immer eine main-Funktion. main heißt auf Deutsch so viel wie »Hauptfunktion«. Das void in der main()-Funktion steht für einen »leeren« Datentyp (mehr dazu später). void könnten Sie hier auch ganz weglassen – allerdings soll hier nicht unerwähnt bleiben, dass () und (void) in C++ nicht dasselbe sind. Sofern Sie also Ihre Programme erweitern wollen, sollten Sie es gleich mit angeben.

int steht für eine Ganzzahl. Im Fall einer Funktion bedeutet dies, dass sie einen Rückgabewert hat, der vom Typ int ist. In diesem Programm bekommt die main-Funktion den Rückgabewert 0 durch folgenden Aufruf:

return 0;

Das bedeutet: Das Programm wurde ordnungsgemäß beendet. Es wird also mit return hier der Funktion main der Wert 0 zurückgegeben. Genaueres dazu (zur main()-Funktion und deren Rückgabewerten) erfahren Sie in einem späteren Kapitel. Wir machen zunächst mit

{
   printf(".....");
}

weiter. Zwischen den geschweiften Klammern steht der Anweisungsblock. Das heißt, in diesem Block befinden sich alle Anweisungen, die die Funktion int main() auszuführen hat. Natürlich können innerhalb eines Anweisungsblocks weitere Anweisungsblöcke verwendet werden. Das hört sich komplizierter an, als es ist. Darauf gehe ich später noch ein.


Merke

Geschweifte Klammern fassen Anweisungen zu einem Block zusammen.


Und was geschieht in diesem Anweisungsblock?

printf("Hallo Welt\n");

printf() ist eine Funktion, die in der Headerdatei stdio.h deklariert ist, wie bereits erwähnt wurde. Deswegen kann der Compiler, wenn Sie diese Headerdatei nicht im Programm angegeben haben, nichts mit printf() anfangen. Mit der Funktion printf() kann eine beliebige Stringkonstante formatiert auf dem Bildschirm ausgegeben werden. Die Stringkonstante, in diesem Fall »Hallo Welt«, die ausgegeben wird, steht immer zwischen zwei Hochkommata ("Stringkonstante"). Es ist nicht erlaubt, eine Stringkonstante über das Zeilenende fortzusetzen, wie etwa im folgenden Beispiel:

printf("Dies ist in C
nicht erlaubt");

Es gibt aber eine Ausnahme von dieser Regel: indem Sie einen \ (Backslash) setzen. Hierzu ein Beispiel:

printf("Hier ist die Ausnahme von der Regel \
dies hier ist erlaubt, dank Backslash");

Sie sollten aber dabei beachten, dass alle Leerzeichen nach dem Backslash in der nächsten Zeile ebenfalls bei der Ausgabe berücksichtigt werden. Das Zeichen '\n' in der Funktion von printf() ist ein Steuerzeichen. Es bedeutet newline und erzeugt auf dem Bildschirm einen Zeilenvorschub, wie er mit der Tastatur durch die Taste Taste Enter ausgelöst wird.

Kommen wir jetzt zum Semikolon (;): Es wird hauptsächlich dazu verwendet, das Ende einer Anweisung anzuzeigen. Der Compiler weiß dann, dass hier das Ende der Anweisung von printf()ist, und fährt nach der Abarbeitung der Anweisung mit der nächsten Zeile bzw. Anweisung fort. Natürlich hat das Semikolon keine Wirkung, wenn es in einer Stringkonstante verwendet wird:

printf("Hallo; Welt\n");

Ausgabe:

Hallo; Welt

Merke

Anweisungen, denen kein Anweisungsblock folgt, werden mit einem Semikolon abgeschlossen.




Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen. >> Zum Feedback-Formular
<< zurück
  
  Zum Katalog
Zum Katalog: C von A bis Z

 C von A bis Z
Jetzt bestellen


 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: C/C++






 C/C++


Zum Katalog: Einstieg in C






 Einstieg in C


Zum Katalog: Schrödinger programmiert C++






 Schrödinger
 programmiert C++


Zum Katalog: C++ Handbuch






 C++ Handbuch


Zum Katalog: IT-Handbuch für Fachinformatiker






 IT-Handbuch für
 Fachinformatiker


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Rheinwerk Verlag GmbH 2009
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Rheinwerk Computing]

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de