Skip to main content
Top

1989 | Book

Effektiv Programmieren in C

Eine Einführung in die Programmiersprache

Author: Dietmar Herrmann

Publisher: Vieweg+Teubner Verlag

insite
SEARCH

Table of Contents

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ß B um 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. Berücksichtigt man, daß ein Bit davon zur Speicherung des Vorzeichens benötigt wird, lassen sich
$${2^{15}} = 32768$$
verschiedenen Zahlen darstellen. Unter Einbeziehung der Null lassen sich damit die positiven Zahlen 0 bis 32767 darstellen.
Dietmar Herrmann
4. Kontrollstrukturen
Zusammenfassung
Die FOR-Schleife, auch als Zählwiederholung bezeichnet, hat folgende Syntax
$$\matrix{{{\rm{for(ausdruck1; ausdruck2; ausdruck3)}}} \cr {\{\,\,\,\,\,\,\,\,\,\,\,\,\,\,\} ;} \cr} $$
Dietmar Herrmann
5. Felder und Zeichenketten
Zusammenfassung
Gleichartige Elemente wie Folgenglieder, Polynom-Koeffizienten, Vektorkomponenten usw. können zu Feldern zusammengefeß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. Dies bedeutet, daß die Vereinbarungen
$$\matrix{{{\rm{auto int i;}}} \hfill \cr {{\rm{int i;}}} \hfill \cr} $$
gleichbedeutend sind. Eine automatische Variable hat außerhalb ihres Blocks -gegeben durch das geschweifte Klammerpaar, das die Deklaration der Variablen umfaßt —Wert; man sagt, sie ist außerhalb des Blocks unsichtbar.
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 enumeratedaufgezä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-spezi-fisch 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-Compi-lers 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
Backmatter
Metadata
Title
Effektiv Programmieren in C
Author
Dietmar Herrmann
Copyright Year
1989
Publisher
Vieweg+Teubner Verlag
Electronic ISBN
978-3-322-83933-6
Print ISBN
978-3-528-04655-2
DOI
https://doi.org/10.1007/978-3-322-83933-6