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

Jetzt 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 3 Grundlagen
Pfeil 3.1 Zeichensätze
Pfeil 3.1.1 Basic-Zeichensatz
Pfeil 3.1.2 Ausführungszeichensatz (Steuerzeichen)
Pfeil 3.1.3 Trigraph-Zeichen
Pfeil 3.2 Symbole von C
Pfeil 3.2.1 Bezeichner
Pfeil 3.2.2 Schlüsselwörter
Pfeil 3.2.3 Literale
Pfeil 3.2.4 Einfache Begrenzer
Pfeil 3.2.5 Kommentare

In (ANSI) C werden zwei Zeichensätze unterschieden: zum einen der Zeichensatz, der bei Quelldateien verwendet werden darf, und zum anderen ein Ausführungszeichensatz, der beim Ausführen des Programms interpretiert wird.

3 Grundlagen


Rheinwerk Computing - Zum Seitenanfang

3.1 Zeichensätze Zur nächsten ÜberschriftZur vorigen Überschrift

Zunächst wird in C zwischen dem Basic-Zeichensatz, dem Ausführungszeichensatz und den Trigraph-Zeichen unterschieden. Der Basic-Zeichensatz beinhaltet Zeichen, die beim Schreiben von Quellcode verwendet werden können. Der Ausführungszeichensatz hingegen enthält Zeichen, die erst bei der Ausführung des Programms interpretiert werden. Häufig sind beide Zeichensätze identisch.


Erweiterter Zeichensatz

Neben dem Basis-Zeichensatz sind häufig auch noch erweiterte Zeichen vorhanden, die zusammen auch erweiterter Zeichensatz (beispielsweise Unicode-Zeichensätze wie UTF–16 oder UTF-32) genannt werden. Die Menge und Art dieser Zeichen ist allerdings von der Implementierung und der lokalen Sprache abhängig und wird nicht vom Standard vorgeschrieben.



Rheinwerk Computing - Zum Seitenanfang

3.1.1 Basic-Zeichensatz Zur nächsten ÜberschriftZur vorigen Überschrift

Folgende Zeichen stehen Ihnen zum Programmieren in der Sprache C zur Verfügung (dies gilt auch für den Ausführungszeichensatz):

  • die zehn Dezimalziffern: 1 2 3 4 5 6 7 8 9 0
  • die Buchstaben des englischen Alphabets:
    • A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
    • a b c d e f g h i j k l m n o p q r s t u v w x y z
  • die folgenden Grafiksymbole:
    • ! " % & / ( ) [ ] { } \ ? =
    • ’ # + * ~_ . : ; , | < > ^
  • die Whitespace-Zeichen: Leerzeichen, Tabulatorzeichen, neue Zeile, neue Seite

Auf manchen PCs (aber nicht bei ANSI C) kann auch das Dollarzeichen ($) verwendet werden.


Rheinwerk Computing - Zum Seitenanfang

3.1.2 Ausführungszeichensatz (Steuerzeichen) Zur nächsten ÜberschriftZur vorigen Überschrift

Beim Ausführungszeichensatz kommen zu den oben aufgeführten Zeichen noch weitere hinzu, die in diesem Abschnitt beschrieben werden.

Zuvor soll ein weiteres Programm analysiert werden. Dazu gehen Sie genauso vor wie schon in Kapitel 2: Tippen Sie das Listing in einem Texteditor ab, speichern Sie es ab, und übersetzen Sie es anschließend mit dem Compiler.

Hier das Programmbeispiel zur Demonstration:

/* steuerzeichen.c */
#include <stdio.h>

int main(void) {
   printf("Ein akustisches Signal mit : (\\a)\a");
   printf("\nEin Backspace mit : (\\b) | \bx\n");
   printf("Ein Zeilenvorschub mit : (\\t) |\tx");
   printf("\n\tC\n\ti\n\ts\n\tt\n\ttoll\n");
   printf("\t   u\n\t   n\n\t   d\n");
   printf("\t   macht Spaß\n");
   return 0;
}

Nach dem Übersetzen und Starten des Programms sieht die Ausgabe folgendermaßen aus:

Abbildung 3.1 Steuerzeichen im Einsatz

Hier können Sie die Auswirkungen von Steuerzeichen, auch Escape-Sequenzen (zu Deutsch »Flucht-Sequenzen«) genannt, sehen. Diese Zeichen sind nicht druckbare Zeichen in sogenannten char-Konstanten. Und wie der Name (Steuerzeichen) besagt und das Programm soeben gezeigt hat, können Sie damit die Ausgabe auf dem Bildschirm beeinflussen. Diese Zeichen gehören zum Ausführungszeichensatz.

Steuerzeichen beginnen immer mit einem Backslash (\), auf den eine Konstante folgt. Der Compiler behandelt diese Steuerzeichen wie ein einziges Zeichen. Tabelle 3.1 führt die möglichen Steuerzeichen und ihre Bedeutung auf.


Tabelle 3.1 Steuerzeichen (Escape-Sequenzen) in Zeichenkonstanten

Steuerzeichen Bedeutung
\a

BEL (bell) – akustisches Warnsignal

\b

BS (backspace) – setzt den Cursor um eine Position nach links.

\f

FF(formfeed) – ein Seitenvorschub wird ausgelöst. Wird hauptsächlich bei Programmen verwendet, mit denen Sie etwas ausdrucken können.

\n

NL (newline) – der Cursor geht zum Anfang der nächsten Zeile.

\r

CR (carriage return) – der Cursor springt zum Anfang der aktuellen Zeile.

\t

HT (horizontal tab) – Zeilenvorschub zur nächsten horizontalen Tabulatorposition (meistens acht Leerzeichen weiter)

\v

VT (vertical tab) – der Cursor springt zur nächsten vertikalen Tabulatorposition.

\"

" wird ausgegeben.

\’

' wird ausgegeben.

\?

? wird ausgegeben.

\\

\ wird ausgegeben.

\0

Das ist die Endmarkierung eines Strings.

\nnn

Ausgabe eines Oktalwerts (z. B. \033 = ESCAPE-Zeichen)

\xhh

Ausgabe eines Hexdezimalwerts


Hierzu noch ein Listing, das zeigt, wie Sie außer mit dem Newline-Zeichen (\n) noch einen Zeilenvorschub auslösen könnten:

/* newline.c */
#include <stdio.h>

int main(void) {
   printf("Darstellung von Newline \\n \n");
   printf("Mögliche Ausführung von Newline\n");
   printf("Mit hexadezimaler Angabe : \\xa \xa");
   printf("Mit oktaler Wertangabe   : \\012 \012");
   printf("Mit dezimaler Angabe     : 10%c",10);
   printf("Hallo\0Ich bin nicht mehr lesbar\n");
   return 0;
}

Dass auch ein Zeilenvorschub bei \xa , \012 und 10 vorgenommen wurde, liegt daran, dass alle diese Zeichen intern den Wert 10 darstellen. Und wenn Sie sich die ASCII-Code-Tabelle (in Anhang A.2) ansehen, können Sie erkennen, dass alle diese Werte in derselben Zeile stehen und das newline-Zeichen darstellen. Dass bei der letzten printf()-Anweisung der Text nur bis »Hallo« ausgegeben wird, liegt am Steuerzeichen '\0', mit dem eine Stringkonstante terminiert (abgeschlossen) wird. Wird das Beispiel mit einer höheren Warnstufe übersetzt (beispielsweise mit dem Flag -Wall beim GCC), wird der Compiler über diese Zeile sowieso »meckern«, weil es einfach keinen Sinn macht, hier das Zeichen '\0' einzubetten. Dazu später mehr.


Hinweis

Jeder Compiler hat einen Schalter, mit dem Sie beim Übersetzen mehr Warnungen als üblich ausgeben lassen können. Beim Borland-Compiler ist dies beispielsweise der Schalter -w. Beim Intel-Compiler lautet dieser -w4, und beim MS Visual-C++-Compiler ist dies \W4.



Rheinwerk Computing - Zum Seitenanfang

3.1.3 Trigraph-Zeichen topZur vorigen Überschrift

Als Trigraph bezeichnet man in der Linguistik eine Kombination aus drei Schriftzeichen, die als Einheit behandelt werden, z. B. unser »sch«.

In ANSI C wurden neun solche Drei-Zeichen-Sequenzen verwendet, die alle mit ?? beginnen. Trigraph-Zeichen wurden eingeführt, um in C-Quelltexten bestimmte Sonderzeichen zu ersetzen, die auf manchen Tastaturen nicht vorhanden sind.


Anmerkung des Autors

Mir ist zwar schleierhaft, wozu man diese Trigraph-Zeichen heute noch benötigt, aber sie sollten dennoch erwähnt werden, weil sie zum Standard gehören und weil Sie einen Quellcode vor sich haben könnten, der diese Zeichen beinhaltet.


Heute besteht kaum noch eine Notwendigkeit zur Verwendung von Trigraph-Zeichen in C, da auf aktuellen Computersystemen der komplette ASCII-Zeichensatz verfügbar ist. In der folgenden Tabelle finden Sie die verfügbaren Trigraph-Zeichenketten und die Erklärung, für welches Zeichen diese stehen.


Tabelle 3.2 Trigraph-Zeichen in ANSI C

Trigraph-Zeichen Zeichen
??=
#
??(
[
??)
]
??/
\
??'
^
??!
|
??<
{
??>
}
??-
~

Somit würde beispielsweise das »Hallo Welt«-Programm mit Trigraph-Zeichen folgendermaßen aussehen:

// halloTrigraph.c
??=include <stdio.h>

int main( void )
??<
      printf("Hallo Welt");
      return 0;
??>

Einige Compiler verarbeiten Trigraph-Zeichen nicht direkt, weil auf dem Rechner, auf dem der Compiler ausgeführt wird, die Eingabe aller Zeichen des C-Zeichensatzes erlaubt ist. Bei solchen Compilern (beispielsweise beim Borland-Compiler) liegen dann entweder spezielle Hilfsprogramme (z. B. TRIGRAPH.EXE) bei, oder Sie müssen ein bestimmtes Compiler-Flag (z. B. -trigraphs) verwenden. Beim GNU-GCC müssen Sie das Beispiel zudem im C99-Standard (mit der Compiler-Option -std=c99) übersetzen.


Hinweis

Bei der Entwicklung neuer Software sollten Sie, wenn möglich, auf den Einsatz von Trigraph-Zeichen komplett verzichten.




Ihre Meinung

Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.

<< zurück
  
  Zum Rheinwerk-Shop
Zum Rheinwerk-Shop: C von A bis Z

 C von A bis Z
Jetzt bestellen


 Ihre Meinung?
Wie hat Ihnen das Openbook gefallen?
Ihre Meinung

 Buchtipps
Zum Rheinwerk-Shop: C/C++






 C/C++


Zum Rheinwerk-Shop: Einstieg in C






 Einstieg in C


Zum Rheinwerk-Shop: Schrödinger programmiert C++






 Schrödinger
 programmiert C++


Zum Rheinwerk-Shop: C++ Handbuch






 C++ Handbuch


Zum Rheinwerk-Shop: IT-Handbuch für Fachinformatiker






 IT-Handbuch für
 Fachinformatiker


 Lieferung
Versandkostenfrei bestellen in Deutschland, Österreich und der Schweiz
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.


Nutzungsbestimmungen | Datenschutz | Impressum

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

Cookie-Einstellungen ändern