Berndt Wischnewski | Richard-Wagner-Str. 49 | 10585 Berlin | ||
Tel.: 030 - 3429075 | FAX : 030 34704037 | email: webmaster@peacesoftware.de | Ust-ID: DE135577379 |
C Kurs - hello.c revisited1. Header Files Sie erinnern sich an Ihr erstes C Programm
In der ersten Zeile steht:
#include bedeutet, hier wird etwas eingefügt und zwar der Inhalt der Header Datei stdio.h . Header Dateien erkennt man an der Endung ".h". Stellen Sie sich einfach vor, hier würde mit Copy & Paste der Inhalt der Datei stdio.h eingefügt werden. Muß #include am Anfang des Programmes stehen? Im Prinzip nicht, es könnte überall stehen, aber vor der ersten Benutzung einer Funktion oder Variablen aus einem Header File müssen deren Definitionen "included" sein. Deshalb stehen die #include Anweisungen meist doch am Anfang eines Programmes oder Programmteiles. Was sind Header Files im allgemeinen und stdio.h
im speziellen?
Die spitzen Klammern < .. > bedeuten, es handelt sich um eine Standard Header Datei, die der Compiler kennt und von der er weiß wo sie liegt.Wenn Sie selber eigene Header Dateien kreieren, würden die ersten Zeilen vielleicht so lauten:
der Compiler wird dann in dem Pfad, wo sich Ihr Programmquelltext, hello.c befindet, nach meinHeader.h suchen. Warum und wann soll ich eigene Header Files anlegen? Programmiert man an größeren Softwareprojekten zusammen mit mehreren anderen Programmierern, wird in lustigen meetings die Struktur der Header Files festgelegt. Hier kann man prima seinem Ego freien Lauf lassen und die von einem selber bevorzugten Namenskonventionen mit Vehemenz gegen die abstrusen Vorschläge der anderen Gruppenmitglieder verteidigen. Natürlich gibt es dann auch immer einige, die beim meeting gerade nicht konnten und dann trotzdem die alten Namensregeln weiter pflegen, woraufhin dann neue meetings angesetzt werden...
2. Die Funktion main Die zweite Zeile unseres Programmes lautet:
Die Funktion main ist der Anfangspunkt unseres Programmes. Ab hier geht es los. jedes ausführbare C Programm hat eine main Funktion. Gibt es auch nicht-ausführbare C Programme? Ja klar, z. B. Libraries, Hardware Treiber usw.. Diese werden von anderen Programmen aufgerufen und ausgeführt und enthalten keine main Funktion. Dies bedeutet auch das main ein reserviertes Key-Wort ist, es ist strikt verboten eine eigene Funktion oder Variable main zu nennen. Was ist eigentlich eine Funktion? Funktionen haben einen Namen, einen Rückgabewert (immer, anders als in Pascal wo procedure eine Funktion ohne Rückgabewert bedeutet) und eine Liste von Eingabe Variablen. Wenn eine Funktion "nichts" ausgeben wird, dann gibt sie "void" zurück, dies muss aber deklariert werden. Void bedeutet "nichts". In unserem Falle der main-Funktion. int main(void) wird von der Funktion ein int - ein Integer Wert, eine ganze Zahl - ausgegeben int main(void), und nichts geht in die Funktion hinein int main(void) . Nach dem Funktionskopf (function head), int main(void) kommt der in geschweiften Klammern {..} der Funktionsrumpf(body of function), in dem die eigentliche Arbeit passiert. Funktionen in die nichts hineingeht und aus denen nichts herauskommt, z.B. void myFunction(void), können also trotzdem etwas ausführen, nämlich das, was in ihrem Funktionsrumpf steht.
Namensregeln für Funktionen und Variable:
3. printf("hello world"); Innerhalb des Rumpfes der main Funktion stehen zwei Anweisungen: 1.
Hier erfolgt ein Aufruf der printf Funktion, einer C Standardfunktion zur formatierten Ausgabe.Der Rückgabewert wird nicht ausgewertet. Welcher Rückgabewert? Nun man könnte auch X = printf("hello world"); schreiben, aber haben wir nicht gemacht. Warum? Nun der Rückgabewert interessiert uns einfach nicht. Als Eingabevariable für die printf Funktion wird der String, was das ist kriegen wir später, ""hello world" eingefügt.Am Ende steht ein Semikolon ";". damit ist Funktionsaufruf von printf abgeschlossen. und 2.
Hier wird die main Funktion angewiesen, etwas zurückzugeben, nämlich Null. Zurückgegeben an wen? Na an den, der die Funktion aufruft. Wer ruft unser main denn auf? das Betriebssystem Ihres Computers ruft main auf, indem Sie hello.exe starten. Warum muss main denn einen Wert an das Betriebssystem zurückgeben? Unter den meisten Betriebssystemen kann man so etwas wie Shell Skripte oder Batch Dateien schreiben, in denen natürlich auch selbst geschriebene C Programme aufgerufen werden können. Hier kann man an die Rückgabewerte der aufgerufenen Programme dann auswerten.
bedeutet immer "alles OK, Programm fehlerfrei beendet".
|
Einige gute C Lernbücher von Erlenkötter und Wolf: |