Der C-Kurs ^{qwerty}

1

Inhaltsverzeichnis

1 Allgemeines 3 1.1 Was benötige ich zu diesem Kurs? . . . . . . . . . . . . . . . . 3 1.2 Für wen ist dieser Kurs geeignet? . . . . . . . . . . . . . . . . 3 1.3 Welches Betriebssystem benötige ich? . . . . . . . . . . . . . . 4 1.4 Ist C überhaupt noch Zeitgemäss? . . . . . . . . . . . . . . . . 5 1.5 Quellen zum nachschlagen . . . . . . . . . . . . . . . . . . . . 6 1.6 C-Standarts (ANSI C, POSIX, SVR4 ...) . . . . . . . . . . . . 6

1 Allgemeines

1.1 Was benötige ich zu diesem Kurs?

Je nach Betriebsystem benötigen Sie einen Compiler. Bei Linux/Unix - Systeme dürfte das kein Problem sein, denn dort sind die Compiler schon mit dabei. Für MS Windows müssen Sie sich leider selbst darum kümmern. Aber keine Sorgen, es gibt mittlerweile viele Compiler im WWW zum kostenlosen Download. Hier ein paar Adressen :

http://www.borland.com/bcppbuilder/freecompiler/ http://www.cs.virginia.edu/ lcc-win32/ http://sourceware.cygnus.com/cygwin/ http://www.delorie.com/djgpp/

1.2 Für wen ist dieser Kurs geeignet?

Dieser Kurs eignet sich für Anfänger und für mäßig Fortgeschrittene. Anfänger werden in den Grundlagen eingeführt und dann langsam in eine höhere Stufe ”gehobe”. Für Fortgeschrittene eignet sich dieser Kurs um das was Sie schon können zu festigen und vielleicht das Eine oder Andere neu hinzu zu lernen. Ich möchte das ganze nicht als ein Kurs verschreien. Eher als ein Tutorial vom Anfänger bis zum Fortgeschrittenen C-Programmierer. Wenn sich ein paar ”Codegurus” meinen Kurs durchsehen und Fehler entdecken oder Tipps für mich haben, wäre natürlich auch toll. Ich bin immer auf der Suche nach Kritik und Anregungen für diese Webseite. Ich hoffe das diese Webseite irgendwann mal so etwas wie eine Referenz für C in deutscher Sprache wird. Dies kann kann nur erreicht werden wenn möglichst viele Leute an diesem Kurs durcharbeiten, um anschließend diesen Kurs Bewerten zu können.

1.3 Welches Betriebssystem benötige ich?

Das müssen sie schon selber entscheiden welches Betriebssystem das bessere für sie ist. Wenn sie sich für das Interna eines Betriebssystems interessieren dann ist Linux auf jeden Fall das bessere OS dafür. Alleine weil Linux im Open Source daherkommt. Das heisst Sie können unter Linux den Code oder den Kernel einsehen oder bei geeigneten Kenntnissen selbst bearbeiten. Und was noch besser ist sie können bei Linux, wenn sie mal C besser können den Quellcode studieren und dabei lernen wie so ein Betriebssystem aufgebaut ist. Der ”Nachteil” wenn man davon sprechen kann ist eine gewisse Einarbeitungszeit. Aber wenn man es erst mal raus hat wird man es nicht mehr missen wollen.

Wenn sie aber keine Lust auf das erlernen eines neuen Betriebssystem haben oder einfach nur Programmieren wollen können sie auch Windows dazu benutzen. Beide zu benutzen kann nicht schaden. Ich will jetzt hier kein OS favouritisieren sonst würde ich wieder eine Flut von Protest-Mails von der Einen oder Anderen Seite bekommen.

Meine Empfehlung dazu ist, sollten sie mit C weiterprogrammieren wollen benutzen sie Linux. Denn der ganze Kernel und viele Programme sind in C programmiert. Mit MS-DOS wird eigentlich immer weniger gemacht und wird früher oder später sowieso verschwunden sein. Sollten sie C nur als Sprungbrett für C++ verwenden so wird es wieder schwierig zu Entscheiden welches OS dafür besser geeignet ist. Früher hätte ich Windows gesagt. Aber mittlerweile wird KDE2 auch schon ganz in C++ programmiert. Ich lasse das mal so stehen.

1.4 Ist C überhaupt noch Zeitgemäss?

Viele werden jetzt sagen wozu überhaupt noch C lernen wenn es C++ gibt? C wird oft schlecht gemacht weil die Sprache ziemlich unstrukturiert ist. Aber gerade diese Freiheit macht es aus die Programme möglichst sauber und ordentlich zu strukturieren. Kritiker der Sprache zählen folgende Mängel auf :

• C ist schwer erlernbar und die Programme schwer leserlich.

• Die Freiheiten seinen Code zu schreiben führt oft dazu unsaubere Programme zu schreiben die man nach einer gewissen Zeit selber nicht mehr versteht. (Spagetti-Code)

• Fehler die bei anderen Sprachen bei Compilerlauf abgeschaltet werden, bergen Gefahr nicht gefunden zu werden.

• Jeder Anfänger hat Zugriff auf die Hardware, da man mit C Hardwarenah programmieren kann. Was ein falscher Zugriff bedeutet kann man sich ja denken.

Im Gegensatz dazu möchte ich natürlich mit Vorteilen kontern, nicht das sie auf die Idee kommen diesen C-Kurs gar nicht zu machen. Wer z.B. unter UNIX programmieren will der kommt an der Sprache C sowieso nicht vorbei, da das Betriebssystem selber zu großen Teil in C geschrieben wurde. Außerdem bietet C die wesentlichen Konstrukte höherer Programmiersprachen. Das heißt wenn sie C können wird es Ihnen nicht schwer fallen andere Sprachen zu lernen. Weiterer Vorteil ist die Hardwarenahe Programmierung. Was dem Anfänger zum Nachteil werden kann, kann für Experten ein Segen sein. Denn man müsste sonst die Programmiersprache Assembler verwenden. Ein weiterer Vorteil ist die Portierbarkeit der Programme. Man kann sehr leicht Programme schreiben die auf alle Maschinen laufen. Also ist C so etwas wie eine Universelle Sprache. C++ (ist nicht C) ist eine Erweiterung zu C und sie können alles was sie in diesem Kurs lernen auch später wenn sie auf C++ umsteigen übernehmen. Also könnte man auch sagen C ist die Grundlage für C++ (auch wenn es der eine oder andere nicht hören will). Natürlich ist es auch unumstritten das C++ die am meisten angewandte Programmiersprache ist. Schauen Sie sich nur mal die Stellenanzeigen an.

Der C-Kurs - http://www.pronix.de 6

1.5 Quellen zum nachschlagen 1.6 C-Standarts (ANSI C, POSIX, SVR4 ...)