Die Programmiersprache C wurde Anfang der siebziger Jahre (1972) von Dennis M. Ritchie in den Bell Laboratories entwickelt, im Zusammenhang mit der Implementation des Betriebssystems UNIX auf der Rechenanlage DEC PDP-ll. Viele wichtige, in C verwirklichte Ideen entstammen allerdings der Sprache B, die von Ken Thompson (1970) für das erste UNIX-System auf der DEC PDP-7 geschrieben wurde, die wiederum ihren Ursprung in der von Martin Richards entwickelten Sprache BCPL (1967) hat. Fast das gesamte Betriebssystem UNIX ist in C geschrieben. Mittlerweile wird C nicht nur unter UNIX, sondern auch unter anderen Betriebssystemen eingesetzt. Der Grund für die zunehmende Beliebtheit von C sind Portabilität, d.h. die Lauffähigkeit der Programme ohne Änderungen auf den verschiedensten Rechnern, und breite Anwendungsmöglichkeiten, die wiederum die Folge von mehreren Faktoren sind: - C besitzt moderne, hochsprachliche Steuerstrukturen, wie etwa die Sprachen Ada, PLll und Pascal. - In C kann man Bits, Bytes und Zeichenketten manipulieren, wie mit einem Assembler, aber auch Zeiger und strukturierte Datentypen verwenden. - C ist vom Umfang her eine kleine, leicht erlernbare Sprache (32 Schlüsselwörter, Basic über 150!). - C ermöglicht weitgehend redundanz-freien Quellcode, d.h. C-Programme sind de- lich kürzer als Programme in anderen Sprachen. Dieses alles sind Forderungen, die man an eine Sprache stellt, in der Betriebssysteme, Compiler oder professionelle Anwenderprogramme geschrieben werden sollen. Daher wird C auch als "die Sprache der Programmierer" bezeichnet.
Numerische Datentypen und Ausdrücke - Anweisungen - Funktionen und Programmstruktur - Felder und Zeiger - Strukturen und Zeiger - Der Präprozessor - Die Standardbibliothek - Ein-/Ausgabe - Was es sonst noch gibt
1 Einführung.- 1.1 Aufbau von C-Programmen.- 1.2 Ein erstes C-Programm.- 1.3 Verarbeitung numerischer Daten.- 1.4 Lesen bis zum Ende.- 1.5 Speicherung von Werten.- 1.6 Strukturierung des Programms.- 1.7 Die Darstellung von Programmen.- 2 Numerische Datentypen und Ausdrücke.- 2.1 Definitionen.- 2.2 Standardtypen.- 2.3 Konstanten.- 2.4 Deklaration von Variablen, Anfangswerte.- 2.5 Benennung von Typen.- 2.6 Arithmetische Operatoren.- 2.7 Zuweisungsoperatoren.- 2.8 Inkrementierung und Dekrementierung.- 2.9 Nebeneffekte.- 2.10 Konstante Ausdrücke.- 2.11 Overflow und Underflow.- 3 Anweisungen.- 3.1 Ausdruckanweisungen.- 3.2 Zusammengesetzte Anweisungen.- 3.3 Leere Anweisungen.- 3.4 Logische Ausdrücke.- 3.5 Schleifen.- 3.6 Auswahl von Alternativen.- 3.7 Sprünge.- 4 Funktionen und Programmstruktur.- 4.1 Funktionen.- 4.2 Die Struktur des Programms.- 4.3 Verfügbarkeit von Variablen.- 4.4 Rekursion.- 4.5 Synchronisationspunkte.- 5 Felder und Zeiger.- 5.1 Felder.- 5.2 Adressrechnung.- 5.3 Zeiger.- 5.4 Zeigerarithmetik.- 5.5 Felder als Parameter von Funktionen.- 5.6 Strings.- 5.7 Explizite Anfangswerte.- 5.8 Das Attribut const.- 5.9 Zeiger auf Zeiger.- 5.10 Zeiger als Funktionswerte.- 5.11 Dynamische Speicherzuordnung.- 5.12 Zeiger auf Funktionen.- 6 Strukturen und Zeiger.- 6.1 Strukturen.- 6.2 Geschachtelte strukturierte Typen.- 6.3 Zeiger auf Strukturen.- 6.4 Verkettete Listen.- 6.5 Partielle und vollständige Deklaration.- 6.6 Mehr über verkettete Listen.- 6.7 (Binäre) Bäume.- 7 Der Präprozessor.- 7.1 Format der Direktiven.- 7.2 Zugriff auf (andere) Dateien.- 7.3 Macros ohne Parameter.- 7.4 Macros mit Parametern.- 7.5 Bedingte Compilation.- 7.6 Präprozessor-Operatoren.- 7.7 Weitere Direktiven.- 8 Die Standardbibliothek.- 8.1 Übersicht.- 8.2 Elementare Typen ().- 8.3Testhilfen ().- 8.4 Klassifizierung von Zeichen ().- 8.5 Fehlernummern ().- 8.6 Interne Datenformate ( und ).- 8.7 Länderspezifische Darstellungen und Zeichen ().- 8.8 Mathematische Funktionen ().- 8.9 Sprünge zwischen Funktionen ().- 8.10 Behandlung von Signalen ().- 8.11 Funktionen mit variabler Argumentzahl ().- 8.12 Diverse Hilfsroutinen ().- 8.13 Stringverarbeitung ().- 8.14 Termine und Zeiten ().- 9 Ein-/Ausgabe.- 9.1 Grundlagen.- 9.2 Zuordnung von Dateien.- 9.3 Verwaltung der Dateipuffer.- 9.4 Formatierte Eingabe.- 9.5 Formatierte Ausgabe.- 9.6 Ein-/Ausgabe von Zeichen(folgen).- 9.7 Binäre Ein-/Ausgabe.- 9.8 Positionierung von Dateien.- 9.9 Behandlung von Fehlern.- 9.10 Verwaltung von Betriebssystem-Dateien.- 10 Was es sonst noch gibt.- 10.1 Weitere Datenattribute.- 10.2 Verbunde.- 10.3 Verarbeitung von Bits.- 10.4 Der Komma-Operator.- Anhang A Der Zeichensatz von C.- Anhang B Schlüsselwörter.- Anhang C Operator-Übersicht.- Anhang D Formatierung.- D.1 Formatierung der Eingabe.- D.2 Formatierung der Ausgabe.- Anhang E Minimale Maxima.- E.1 Schranken für das Quellprogramm.- E.2 Schranken für die Wertebereiche.- Anhang F Die Syntax von C.- F.1 Namen.- F.2 Konstanten.- F.3 Ausdrücke.- F.4 Deklarationen.- F.5 Anweisungen.- F.6 Externdeklarationen.- F.7 Syntax des Präprozessors.- Anhang G Syntaxdiagramme.- G.1 Namen.- G.2 Konstanten.- G.3 Ausdrücke.- G.4 Deklarationen.- G.5 Anweisungen.- G.6 Externdeklarationen.- Anhang H Unterschiede zwischen "altem" C und ANSI-C.- Anhang I Erste Schritte mit UNIX.- I.1 Ein- und Ausloggen, Passwort.- I.2 Das Dateisystem.- I.3 Verwaltung von Dateien.- I.4 Bearbeitung von Textdateien.- I.5 Übersetzen von C-Programmen.- I.6 Das Programm make.- L7 Umleitung der Standard-Ein-/Ausgabe.- Literatur.
Inhaltsverzeichnis
Numerische Datentypen und Ausdrücke - Anweisungen - Funktionen und Programmstruktur - Felder und Zeiger - Strukturen und Zeiger - Der Präprozessor - Die Standardbibliothek - Ein-/Ausgabe - Was es sonst noch gibt
Klappentext
Die Programmiersprache C wurde Anfang der siebziger Jahre (1972) von Dennis M. Ritchie in den Bell Laboratories entwickelt, im Zusammenhang mit der Implementation des Betriebssystems UNIX auf der Rechenanlage DEC PDP-ll. Viele wichtige, in C verwirklichte Ideen entstammen allerdings der Sprache B, die von Ken Thompson (1970) für das erste UNIX-System auf der DEC PDP-7 geschrieben wurde, die wiederum ihren Ursprung in der von Martin Richards entwickelten Sprache BCPL (1967) hat. Fast das gesamte Betriebssystem UNIX ist in C geschrieben. Mittlerweile wird C nicht nur unter UNIX, sondern auch unter anderen Betriebssystemen eingesetzt. Der Grund für die zunehmende Beliebtheit von C sind Portabilität, d.h. die Lauffähigkeit der Programme ohne Änderungen auf den verschiedensten Rechnern, und breite Anwendungsmöglichkeiten, die wiederum die Folge von mehreren Faktoren sind: . C besitzt moderne, hochsprachliche Steuerstrukturen, wie etwa die Sprachen Ada, PLll und Pascal. . In C kann man Bits, Bytes und Zeichenketten manipulieren, wie mit einem Assembler, aber auch Zeiger und strukturierte Datentypen verwenden. . C ist vom Umfang her eine kleine, leicht erlernbare Sprache (32 Schlüsselwörter, Basic über 150!). . C ermöglicht weitgehend redundanz-freien Quellcode, d.h. C-Programme sind de- lich kürzer als Programme in anderen Sprachen. Dieses alles sind Forderungen, die man an eine Sprache stellt, in der Betriebssysteme, Compiler oder professionelle Anwenderprogramme geschrieben werden sollen. Daher wird C auch als "die Sprache der Programmierer" bezeichnet.