Skip to main content

1991 | Buch | 2. Auflage

Effektiv Programmieren in C

Eine beispielorientierte Einführung

verfasst von: Dietmar Herrmann

Verlag: Vieweg+Teubner Verlag

insite
SUCHEN

Inhaltsverzeichnis

Frontmatter
1. Ein Überblick
Zusammenfassung
Die Entstehung von C erfolgte simultan zur Entwicklung des Betriebssystems UNIX. In den Jahren 1969–72 schrieb Ken Thomson in den AT&T-Bell-Laboratories mit Hilfe von Dennis Ritchie ein Betriebssystem (die erste Version von UNIX) für den Rechner DEC PDP-7 von Digital Equiment. Dazu entwickelte Thomson die Programmiersprache BCPL (Basic Combined Programming Language) von M. Richards (1967) weiter und nannte sie B. B war wie BCPL für Systemprogrammierung gedacht; daher war der einzige verwendete Datentyp das Maschinenwort. Bei der Einführung der DEC PDP-11 1972 stellte sich das Problem, wie man das Betriebssystem am einfachsten an die Architektur der neuen Maschinen anpassen sollte. Da die PDP-11 nunmehr auch Zeichen, Ganz- und Fließkommazahlen unterstützte, war klar, daß Bum dieses Datentypkonzept erweitert werden mußte. Das Resultat dieser Erweiterung war C, wie die neue Programmiersprache nun folgerichtig genannt wurde.
Dietmar Herrmann
2. Syntax
Zusammenfassung
Die Syntax einer Programmiersprache zählt stets zu den etwas trockenen Kapiteln eines Buches. Die Kenntnis der Syntax aber ist unerläßlich, um korrekte Programme zu schreiben und die Arbeitsweise des Compilers zu verstehen. Gerade in C, das sich durch eine Vielzahl von Operatoren, eine Kurzschreibweise und eine spezielle Interpretation von Ausdrücken wesentlich von anderen Programmiersprachen unterscheidet, ist die genaue Kenntnis aller “Grammatikregeln” der Sprache wichtig.
Dietmar Herrmann
3. Einfache Datentypen
Zusammenfassung
Der einfachste Datentyp ist der der Ganzzahl (engl. integer). Bei den meisten 16-Bit-Rechnern werden int-Zahlen durch ein Rechnerwort implementiert und haben somit eine 16-Bit Darstellung.
Dietmar Herrmann
4. Kontrollstrukturen
Dietmar Herrmann
5. Felder und Zeichenketten
Zusammenfassung
Gleichartige Elemente wie Folgenglieder, Polynom-Koeffizienten, Vektorkomponenten usw. können zu Feldern zusammengefaßt werden.
Dietmar Herrmann
6. Pointer
Zusammenfassung
Von vielen Leuten werden Pointer als das Kapitel der Programmiersprache C betrachtet, das am schwierigsten zu verstehen ist. Wie das obenstehende Zitat von Hoare zeigt, lehnen einige Informatiker das Arbeiten mit Zeigern als Rückschritt in die Assemblerzeit generell ab. Dies kommt zum einen daher, daß viele Programmiersprachen wie Basic oder Fortran überhaupt keine Pointer kennen und neuere Sprachen — wie Pascal — den Gebrauch von Pointern wesentlich einschränken. Zum anderen gilt, daß durch die in C verwendete Syntax für Pointer das Verständnis des Lernenden nicht gerade erleichtert wird.
Dietmar Herrmann
7. Funktionen
Zusammenfassung
Eine Funktion ist mathematisch gesehen eine Vorschrift, die einen bestimmten Funktionswert liefert. Entsprechend versteht man in der Informatik darunter einen selbständigen Programmteil, der in Abhängigkeit von gewissen Parametern einen wohlbestimmten Wert liefert.
Dietmar Herrmann
8. Speicherklassen
Zusammenfassung
C kennt zwei verschiedene Gültigkeitsbereiche von Variablen. Variable, die nur in dem Block gültig sind, in dem sie vereinbart worden sind, heißen automatisch (engl. automatic). Die Speicherklasse auto wird in C als Voreinstellung (Default) gewählt, wenn die Variable nicht explizit in eine andere Speicherklasse gesetzt wird.
Dietmar Herrmann
9. Operatoren und Ausdrücke
Zusammenfassung
C kennt, wie kaum eine andere Programmiersprache, eine Vielzahl von Operatoren.
Dietmar Herrmann
10. Rekursion
Zusammenfassung
Eine Funktion, die sich zur Berechnung eines Funktionswertes selbst aufruft, heißt rekursiv.
Dietmar Herrmann
11. Höhere Datentypen
Zusammenfassung
Den Datentyp enum (englisch enumerated aufgezählt) gab es schon bei zahlreichen älteren C-Compilern; er wird nun durch die neue ANSI C-Norm vollständig unterstützt.
Dietmar Herrmann
12. Dynamische Datenstrukturen
Zusammenfassung
Da die obere Indexgrenze eines Feldes zur Compilierzeit festliegen muß und auch zur Laufzeit nicht geändert werden kann, ist der Speicherbedarf eines Feldes genau festgelegt. Hinzu kommt, daß bei den kleineren Speichermodellen die Größe eines Feldes auf ein Segment, d.h. auf 64K, beschränkt ist. Das Feld stellt daher einen statischen Datentyp dar, im Gegensatz zu dynamischen Datentypen, bei denen der benötigte Speicherplatz nach Bedarf vergrößert oder verkleinert werden kann. Solche dynamische Datenstrukturen werden rekursiv definiert und mit Hilfe von Pointern realisiert. Als Beispiel solcher dynamischen Strukturen sollen Stacks, verkettete Listen und Binärbäume besprochen werden.
Dietmar Herrmann
13. Präprozessor und Bibliotheken
Zusammenfassung
Der Präprozessor ist ein Programm, das den Quellcode für die Compilerübersetzung vorbereitet.
Dietmar Herrmann
14. Dateien und stdin
Zusammenfassung
Die am meisten verwendete Standard-Funktion, die eine formatierte Ausgabe liefert, ist printf().
Dietmar Herrmann
15. Programmier-Prinzipien
Zusammenfassung
Stößt man auf eine besonders elegante Formulierung eines Algorithmus, fragt man sich oft, wie der Autor auf die entsprechende Programmidee gekommen ist. Mustert man jedoch eine Vielzahl von Programmen genauer, erkennt man bald, daß es im Grunde nur wenige grundlegende Programmierprinzipien gibt. Einige dieser Programmiertechniken sollen im folgenden dargestellt werden.
Dietmar Herrmann
16. System-Programmierung
Zusammenfassung
Obwohl die in diesem Abschnitt verwendeten Schlüsselwörter MS-DOS-spezifisch sind und daher nicht der ANSI C-Norm entsprechen, soll an einigen Beispielen gezeigt werden, wie man in C Zugang zum MS-DOS-Betriebssystem erhält. Eine vollständige Darstellung ist im Rahmen des Buches natürlich nicht möglich. Es wird hier verwiesen auf die Literatur [13] bzw. [22].
Dietmar Herrmann
17. Der Quick C-Compiler
Zusammenfassung
Im folgenden Abschnitt wurde die englische Version 1.0 des Quick C-Compilers verwendet. Dieser Compiler existiert in zwei Versionen: Der Compiler qc mit integriertem Editor und die Version qcl, die im Kommandozeilenmodus arbeitet.
Dietmar Herrmann
18. Der Turbo C-Compiler
Zusammenfassung
Die hier verwendete Version des Turbo C-Compilers ist die englische Version 2.0. Diese Version unterscheidet sich von 1.5 nur durch den zusätzlich eingebauten Debugger. Ab der Version 1.5 unterstützt der Compiler auch die Graphik.
Dietmar Herrmann
19. Die wichtigsten ANSI C-Neuerungen
Zusammenfassung
Neue Schlüsselwörter void, const, volatile, signed, enum werden eingeführt. Das Schlüsselwort entry wurde getilgt.
Dietmar Herrmann
20. Hinweise zu den Übungen
Dietmar Herrmann
21. Literaturverzeichnis
Dietmar Herrmann
Backmatter
Metadaten
Titel
Effektiv Programmieren in C
verfasst von
Dietmar Herrmann
Copyright-Jahr
1991
Verlag
Vieweg+Teubner Verlag
Electronic ISBN
978-3-663-14170-9
Print ISBN
978-3-528-14655-9
DOI
https://doi.org/10.1007/978-3-663-14170-9