Rheinwerk Computing < openbook > Rheinwerk Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Vorwort
Vorwort des Gutachters
1 Einstieg in C
2 Das erste Programm
3 Grundlagen
4 Formatierte Ein-/Ausgabe mit »scanf()« und »printf()«
5 Basisdatentypen
6 Operatoren
7 Typumwandlung
8 Kontrollstrukturen
9 Funktionen
10 Präprozessor-Direktiven
11 Arrays
12 Zeiger (Pointer)
13 Kommandozeilenargumente
14 Dynamische Speicherverwaltung
15 Strukturen
16 Ein-/Ausgabe-Funktionen
17 Attribute von Dateien und das Arbeiten mit Verzeichnissen (nicht ANSI C)
18 Arbeiten mit variabel langen Argumentlisten – <stdarg.h>
19 Zeitroutinen
20 Weitere Headerdateien und ihre Funktionen (ANSI C)
21 Dynamische Datenstrukturen
22 Algorithmen
23 CGI mit C
24 MySQL und C
25 Netzwerkprogrammierung und Cross–Plattform-Entwicklung
26 Paralleles Rechnen
27 Sicheres Programmieren
28 Wie geht’s jetzt weiter?
A Operatoren
B Die C-Standard-Bibliothek
Stichwort

Buch bestellen
Ihre Meinung?

Spacer
<< zurück
C von A bis Z von Jürgen Wolf
Das umfassende Handbuch
Buch: C von A bis Z

C von A bis Z
3., aktualisierte und erweiterte Auflage, geb., mit CD und Referenzkarte
1.190 S., 39,90 Euro
Rheinwerk Computing
ISBN 978-3-8362-1411-7
Pfeil 1 Einstieg in C
Pfeil 1.1 Übersicht zu C
Pfeil 1.2 Der ANSI-C-Standard
Pfeil 1.2.1 Welcher C-Standard wird in diesem Buch verwendet?
Pfeil 1.2.2 Der Vorteil des ANSI-C-Standards
Pfeil 1.3 Der POSIX-Standard
Pfeil 1.4 Vor- und Nachteile der Programmiersprache C
Pfeil 1.5 C in diesem Buch
Pfeil 1.6 Was benötige ich für C?
Pfeil 1.6.1 Texteditor
Pfeil 1.6.2 Compiler
Pfeil 1.6.3 All-in-one – die Entwicklungsumgebung
Pfeil 1.7 Welcher Compiler und welches Betriebssystem?


Rheinwerk Computing - Zum Seitenanfang

1.2 Der ANSI-C-Standard Zur nächsten ÜberschriftZur vorigen Überschrift

C wurde 1972 von Dennis Ritchie und Ken Thompson erfunden, wobei »erfunden« nicht ganz der richtige Ausdruck ist. C wurde aufgrund einiger Einschränkungen der Vorgängersprache B implementiert und hauptsächlich für das Betriebssystem UNIX entwickelt. Denn vorher war UNIX vollständig in Assembler programmiert.

Als die ersten frei erhältlichen Compiler für C erschienen, war der Siegeszug nicht mehr aufzuhalten. C wurde im Zusammenhang mit UNIX zur erfolgreichsten Sprache überhaupt.

C wurde aber nicht entwickelt, um Software zu schreiben, sondern für Programmierer, die Compiler entwickelten. Und genau da lag das Problem. Jeder Compiler-Hersteller kochte sein eigenes Süppchen und erweiterte die Programmiersprache um einige Funktionen oder ließ die eine oder andere bestehende Funktion wegfallen.

Mit der Zeit entstanden immer mehr unterschiedliche C-Dialekte, und eine Portierung von einem zum anderen System kam dem Neuschreiben eines Programms gleich.

Schließlich fand sich eine Gruppe von Compiler-, Hardware- und Software-Entwicklern zusammen, mit der Absicht, das Problem der Vielfalt der Sprachendialekte zu beheben. Das American National Standard Institute (kurz ANSI) rief 1983 ein Komitee namens X3J11 ins Leben, das die Aufgabe bekam, die Sprache C zu standardisieren.


ANSI-Standards

Das ANSI hat natürlich nicht nur den C-Standard geschaffen, sondern ist auch für unzählige weitere Standards weltweit verantwortlich (siehe http://www.ansi.org/).


Das Komitee entwickelte einen Entwurf für einen gemeinsamen Standard und dessen Einhaltung. 1989 war es dann endlich so weit: Der Entwurf wurde vorgelegt und auch von der International Standards Organization (ISO) übernommen. In der Kurzform hieß er C89-Standard (ANSI-Standard X3.159–1989). Teil des ANSI-C-Standards sind die Software-Bibliotheken (besser bekannt unter dem Begriff ANSI C standard library).

Bei einer späteren Revision des C-Standards wurden neue Headerdateien zur Bibliothek hinzugefügt. 1995 kamen beispielsweise die Headerdateien <iso646.h>, <wchar.h> und <wctype.h> hinzu, die als Normative Amendment 1 bezeichnet wurden (kurz NA1).

Vier Jahre später, 1999, kamen dann die Headerdateien <complex.h>, <fenv.h>, <inttypes.h>, <stdbool.h>, <stdint.h> und <tgmath.h> hinzu. Diese Revision wurde dann als C99-Standard bekannt.

Natürlich wurden nicht immer nur Headerdateien hinzugefügt, sondern auch die wesentlichen Schwächen von C verbessert. Dies muss an dieser Stelle erwähnt werden, da häufig auf Titeln von Büchern zu lesen ist: »Entspricht dem neuen C99-Standard«. Häufig bezieht sich diese Aussage auf die wesentlichen Verbesserungen von C und nicht auf die neuen Bibliotheken.

Der aktuelle C99-Standard (ISO/IEC 9899:1999) ist mittlerweile bei vielen Compilerherstellern angekommen und größtenteils implementiert.

Sofern Sie den Standard lesen wollen, müssen Sie diesen käuflich erwerben, da es keine Online-Version davon gibt. Der ISO-Standard wird in Genf unter folgender Adresse vertrieben:

ISO Distribution
Case Postale 56
CH-1211 Geneve 20
Suisse

Sie können allerdings auch eine Rationale via FTP von ftp.uu.net beziehen. Im Verzeichnis doc/standards/ansi/X3.159–1989 finden Sie eine entsprechende Postscript-Datei, die auch von Silicon Press (ISBN 0–929306–07–4) vertrieben wird.


Rationale

Eine Rationale ist eine Erklärung, warum das Standardisierungskomitee eine Entscheidung so und nicht anders getroffen hat. Allerdings ist diese Rationale nicht Bestandteil des ANSI-Standards, weshalb sie auch nicht im oben genannten ISO-Standard vorhanden ist. Die Rationale dient lediglich zur Information.


Seit 2007 arbeitet das Standardisierungskomitee an einer neuen Revision des C–Standards. Derzeit wird dieser Standard als C1x bezeichnet. Daraus kann man zumindest schließen, dass dieser Standard irgendwann im Jahre 2010 bis 2019 erscheinen dürfte. Fakt ist auf jeden Fall, dass dann auch die Thread-Programmierung im Standard implementiert sein wird, was gerade angesichts der Mehrprozessorsysteme unumgänglich wird. Es dürfte wohl auch zu erwarten sein, dass der neue C1x-Standard neue Funktionen für eingebettete Systeme, verschiedene Zeichensätze (Unicode-Unterstützung), Funktionen für eine dynamische Speicherreservierung und Überprüfung von Speicher- bzw. Pufferüberläufen usw. enthalten wird.


Rheinwerk Computing - Zum Seitenanfang

1.2.1 Welcher C-Standard wird in diesem Buch verwendet? Zur nächsten ÜberschriftZur vorigen Überschrift

Den einen oder anderen dürfte diese Überschrift etwas verwirren, da sich das Buch doch als C99-Standard-konform gibt. Das ist schon richtig, das Buch hier beschreibt auch den C99-Standard. Nur leider schaffen es einige Compiler-Hersteller nicht (darunter auch solche Größen wie Microsoft oder Borland; Stand 2009) den C99-Standard komplett zu implementieren. So bleibt mir in diesem Buch nichts anders übrig, als immer wieder darauf hinzuweisen, dass dies oder jenes eben dem C99-Standard entspricht und somit auch nur bei Compilern funktioniert, die diesen Standard implementiert haben. Besonders hervorzuheben bezüglich der Unterstützung des C99-Standards sind hier die Compiler GCC, Sun Studio (Software), Open Watcom C Compiler und Intel C/C++.


Hinweis

Die Syntaxbeschreibungen bei den Funktionen der Standard-C-Bibliothek finden Sie im C99-Standard. Im Grunde besteht hierbei eigentlich kein Unterschied, nur dass im C99-Standard einige Funktionen mit dem restrict-Zeiger deklariert sind. Mehr hierzu finden Sie im entsprechenden Abschnitt 12.13.



Rheinwerk Computing - Zum Seitenanfang

1.2.2 Der Vorteil des ANSI-C-Standards topZur vorigen Überschrift

Der Hauptvorteil des ANSI-C-Standards ist die Portabilität von C-Programmen. Das bedeutet: Wenn Sie ein Programm auf Plattform A geschrieben haben und übersetzen, lässt sich dieses Programm auch auf Plattform B übersetzen. Natürlich ist damit eine Neuübersetzung des Quellcodes gemeint und nicht das ausführbare Programm. ANSI-C-Compiler gibt es für über 40 Systeme, vom kleinsten 8-Bit-Computer bis hin zum Superrechner.

Nicht portabel hingegen sind hardwarenahe bzw. betriebssystemspezifische Operationen. Wenn Sie zum Beispiel ein Programm für UNIX/Linux schreiben, das die Grafikkarte anspricht, wird das Programm seine Ausführung auf anderen Systemen verweigern.

Es gibt natürlich noch eine Reihe von weiteren Standards, die aber in diesem Buch nicht behandelt werden.



Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen. >> Zum Feedback-Formular
<< zurück
  
  Zum Katalog
Zum Katalog: C von A bis Z

 C von A bis Z
Jetzt bestellen


 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: C/C++






 C/C++


Zum Katalog: Einstieg in C






 Einstieg in C


Zum Katalog: Schrödinger programmiert C++






 Schrödinger
 programmiert C++


Zum Katalog: C++ Handbuch






 C++ Handbuch


Zum Katalog: IT-Handbuch für Fachinformatiker






 IT-Handbuch für
 Fachinformatiker


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Rheinwerk Verlag GmbH 2009
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Rheinwerk Computing]

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de