Hilfe f�r Entwickler unter Linux |
||||||||||||||
* Einführung * Installation * Paketmanager * Grundlagen * Shells * Entwicklung * KDE * Skriptsprachen * AWK * PHP * Perl * Apache * Veranstaltungen * Schulungen * Bücher * Netzwerk * OpenOffice * OpenSource * Samba | ||||||||||||||
Entwicklung![]() Home Entwicklung von Programmen unter C Versionsverwaltung mit RCS und CVS Mit freundlicher Unterstützung von: Linux-Kurse und Seminare ![]() Veranstalter des Linux-Tag am Bodensee 2007 und 2008 Kontakt Haftung Impressum Problem Hilfe Startseite |
![]() Entwicklung von Programmen unter CAnhand eines kleinen Beispieles wollen wir in diesem Abschnitt die typische Programmentwicklung unter C (C++) darstellen, d.h.
Aber in diesem Artikel geht es nicht um di eallgemeinen Kriterien von Softwareentwicklung oder Softwarezyklen, wie wollen vielmehr an einem ganz einfachen Beispiel zeigen, wie man ein Programm unter der Programmiersprache C erstellt. Zunächst müssen wir unser Programm mit einem Editor schreiben. Zu empfehlen ist hierzu der Emacs. Aus einer Shell heraus startet man ihn mit dem Befehl:
Am besten gleich mit dem Namen des zu schreibenden Programms als Argument:
Wir schreiben nun ein Programm, was sich zu einer Art Standard
für das erste Programm beim Erlernen einer Programmiersprache
entwickelt hat.1
Um ein lauffähiges Programm aus dem Quelltext zu produzieren,
braucht man einen sogenannten Compiler. 2
Startet man den gcc wie oben beschrieben, erzeugt der Compiler das
lauffähige Programm unter dem nicht sehr aussagekräftigen
Namen a.out. Will man zum Beispiel das Programm unter dem Namen "hallo"
erzeugt haben, so kann man gcc mit der -o Option aufrufen:
Um das Programm nun zu starten, braucht man nun nur "hallo" in dem
Verzeichnis aufzurufen, in dem das Programm steht. (Anmerkung: Jeder Text zwischen "/*" und "*/" gilt für den Compiler als Kommentar und wird bei der Übersetzung nicht beachtet!)
Startet man die neue fehlerhafte Version mit "gcc -o hallo hallo.c",
dann meldet der Compiler:
Der Compiler meckert zwei Fehler an. Er sagt, dass es keine Dateo
oder Verzeichnis mit dem Namen "stdoi.h" gibt, und dass die Funktion
printf nicht deklariert worden ist. Die zweite Fehlermeldung ist, wie
man richtig vermuten kann, ein Folgefehler, denn in stdio.h werden die
Stadandard-Ein- und -Ausgabefunktionen deklariert. In unserem Programm verbirgt sich auch so eine Schludrigkeit. Wir können sie sichtbar machen, indem wir den gcc mit der Option -Wall (steht natürlich für "Warnings all") aufrufen.:
Im Prinzip empfiehlt es sich immer die Option -Wall zu benutzen und
die Warnungen ernst zu nehmen, d.h. das heißt den Code so
umzuschreiben, dass es keine Warnungen mehr gibt.
Die Ursache für diese Warnung besteht darin, dass die
main-Funktion immer (nach Standard C99) ein Integer, also ein "int" als
Return-Wert liefern muss. Es muss also "int main()" statt "main()"
heißen. Aber dies alleine genügt noch nicht, da die Funktion
einen Return-Wert zurückliefern muss. Das korrekte Programm sieht
wie folgt aus:
Man sieht, dass es auch bei einfachsten Programmen genügend
Fallstricke gibt Fehler zu machen. Wenn die Programme größer werden, ist es natürlich
nicht immer möglich Fehler durch scharfes Anschauen und logisches
Nachdenken zu entdecken. Dann ist es Zeit für einen Debugger.
Fußnoten: 1 Eine Seite mit einer umfassenden Darstellung von Programmiersprachen und Biespielprogrammen für "Hello World" findet man auf www2.latech.edu/~acm/HelloWorld.shtml. Im Oktober 2005 befanden sich dort die stattliche Anzahl von 193 Beispielimplementierungen in entsprechen vielen Programmiersprachen. 2 Ein Compiler ist ein Programm, das ein Programm aus einer höheren Programmiersprache (Quellsprache) in ein äquivalentes Programm einer anderen Sprache (Zielsprache) übersetzt. Bei der Zielsprache handelt es sich meist um eine Maschinensprache oder eine maschinennahe Sprache. . 3GNU steht für GNU is not UNIX. Übrigens bilden GNU und der Linux-Kernel zusammen das, was meistens als LINUX bezeichnet wird. |
|||||||||||||
© Copyright 2007 - 2010, Bernd Klein mit freundlicher Unterstützung von Bodenseo, Linux-Kurse und Schulungen, Foto linke Seite (Mann mit Strick und Colt): Foto: © Ljupco Smokovski, fotolia 984022 |