8 Anhang

8.1 Schlüsselwörter in C
 
 

auto default float register struct volatile
break do for return switch while
case  double goto short typedef  
char else if signed  union  
const enum int sizeof unsigned  
continue extern long static void  

 
 

8.2 Operatoren in C
 
 
Priorität
Bezeichnung
Symbol
Auswertungsrichtung
15
Klammern
Operatoren zur
Komponentenauswahl
( ) [ ]

. ->

von links nach rechts
Unäre Operatoren
14
Cast-Operator
Größenoperator
Adressoperator
Verweisoperator
Negationsoperatoren
arithmetisch
logisch
bitlogisch
Inkrement
Dekrement
(Datentyp)
sizeof
&
*

-
!
~
++
- -

von rechts nach links
inäre und ternäre Operatoren
13
Arithmetische Operatoren
* /%
von links nach rechts
12
 
+ -
von links nach rechts
11
Schiebe-Operatoren
<< >>
von links nach rechts
10
Vergleichsoperatoren
> >= < <= 
von links nach rechts
9
 
= = !=
von links nach rechts
8
Bit-Operatoren
&
von links nach rechts
7
 
^
von links nach rechts
6
 
|
von links nach rechts
5
Logische Operatoren
&&
von links nach rechts
4
 
||
von links nach rechts
3
Bedingungs-Operator
(ternär)
? :
von rechts nach links
2
Zuweisungs-Operatoren
= += -= *= /= %= >>= <<= &= ^= |=
von rechts nach links
1
Sequenz-Operator
von rechts nach links

 
 
 
 
Priorität
Bezeichnung
Symbol
Auswertungsrichtung
15
Klammern
Operatoren zur
Komponentenauswahl
( ) [ ]

. ->

von links nach rechts
Unäre Operatoren
14
Cast-Operator
Größenoperator
Adreßoperator
Verweisoperator
Negationsoperatoren
arithmetisch
logisch
bitlogisch
Inkrement
Dekrement
(Datentyp)
sizeof
&
*
-
!
~
++
- -
von rechts nach links
inäre und ternäre Operatoren
13
Arithmetische Operatoren
* / %
von links nach rechts
12
 
+ -
von links nach rechts
11
Schiebe-Operatoren
<< >>
von links nach rechts
10
Vergleichsoperatoren
> >= < <= 
von links nach rechts
9
 
= = !=
von links nach rechts
8
Bit-Operatoren
&
von links nach rechts
7
 
^
von links nach rechts
6
 
|
von links nach rechts
5
Logische Operatoren
&&
von links nach rechts
4
 
||
von links nach rechts
3
Bedingungs-Operator
(ternär)
? :
von rechts nach links
2
Zuweisungs-Operatoren
= += -= *= /= %= >>= <<= &= ^= |=
von rechts nach links
1
Sequenz-Operator
von rechts nach links

 

Nähere Erläuterungen zu den Operatoren befinden sich in Kapitel 3.
 
 
 
 

8.3 Datentypen in C
 
Datentyp
Kurzform
Größe
möglicher Wert
char
unsigned
signed char
enum
  1 Byte
1 Byte
2 Byte
-128 bis 127

0 bis 255 (ASCII)

-32 768 bis 32 767

int   2 Bytes 
4 Bytes 
-32 768 bis 32 767

-2 147 483 648 bis

2 147 483 647

unsigned int unsigned 2 Bytes 

4 Bytes

0 bis 65 535

0 bis 4 294 967 295

short int short 2 Bytes -32 768 bis 32 767
unsigned short

int

unsigned 

short

2 Bytes 0 bis 65 535
long int long 4 Bytes -2 147 483 648 bis

2 147 483 647

unsigned long

int

unsigned

long

4 Bytes 0 bis 4 294 967 295
float   4 Bytes 8.43E-37 bis 3.37E+38
6 Stellen genau
long float double 8 Bytes 1.7E-308 bis 1.67E+308
15 Stellen genau
long double   16 Bytes 3.4E-4932 bis 1.1E+4932
19 Stellen genau

 

Nähere Erläuterungen zu den Datentypen befinden sich im Kapitel 4.
 
 
 
 

8.4 ANSI - Standardisierte Header-Dateien
 
 
 
assert.h
ctype.h
errno.h
float.h
limits.h
locale.h
math.h
setjmp.h
signal.h
stdarg.h
stddef.h
stdio.h
stdlib.h
string.h
time.h

 
 
 

printf() - Typangaben für Zeichen und Zahlen
 
 

c char oder int (<=255) einzelnes Zeichen

d int dezimal

u unsigned int dezimal

o unsigned int oktal

x unsigned int hexadezimal mit a, b, c, d, e, f

X unsigned int hexadezimal mit A, B, C, D, E, F
 
 

bei Long-Typen muss den obigen Typangaben noch ein "l" vorangestellt werden, z.B.: lx, ld.
 
 

printf() - Typangaben für Gleitpunktzahlen und Strings

f float / double Gleitpunktzahl (Dezimalpunktdarstellung)

e float / double Gleitpunktzahl (Exponentialdarstellung)

g float / double wie e bzw.f, (kürzere Variante)

s String Ausgabe eines Strings bis "\0"

(falls keine Genauigkeitsangabe)
 
 
 
 

8.5 Klassifizierung der ANSI-Funktionen
 
 

Zeitfunktionen

asctime konvertiert die Time-Struktur in einen String

ctime liefert einen String aus Datum und Uhrzeit

difftime liefert die Zeitdifferenz in Sekunden

gmtime wandelt Time-Struktur in "Greenwich mean time" um

localtime wandelt Time-Struktur in "Local time"

time aktualisiert die Time-Struktur
 
 

Testfunktionen

assert erlaubt Programmabbruch, wenn Testergebnis fehlschlägt
 
 

Speicherverwaltungsfunktionen

calloc reserviert Speicherplatz für Arrays

free gibt reservierten Speicherplatz frei

longjmp erlaubt einen Rücksprung zum setjmp-Aufruf

malloc reserviert Speicherplatz in Bytes

realloc verändert die Größe eines Speicherblocks

setjmp markiert Rücksprung-Stelle von longjmp
 
 

Ein-/Ausgabefunktionen

clearerr löscht den EOF- und den Fehlerindikator einer Datei

fclose schließt eine Datei

feof testet den EOF-Indikator einer Datei

ferror testet den Fehlerindikator einer Datei

fflush erzwingt das Speichern des Puffers in eine Datei
 
 

Ein-/Ausgabefunktionen
 
 

fgetc liest ein einzelnes Zeichen aus einer Datei

fgets liest eine Zeile aus einer Datei in einen Puffer

fopen öffnet eine Datei in einem bestimmten Modus

fprintf schreibt nach angegebenem Format in die Datei

fputc schreibt ein einzelnes Zeichen in die Datei

fputs schreibt eine Zeichenkette in die Datei

fread liest mehrere Sätze aus einer Datei in einen Puffer

freopen ordnet einem Stream eine neue Datei zu

fscanf liest nach angegebenem Format aus einer Datei

fseek bewegt den Dateizeiger

ftell ermittelt die aktuelle Position des Dateizeigers

fwrite schreibt mehrere Sätze aus einem Puffer in eine Datei

getc liest ein Zeichen von einem Stream

getchar liest ein Zeichen von stdin

gets liest eine Zeile von stdin in einen Puffer

perror schreibt eine Meldung auf stderr

printf schreibt nach angegebenem Format auf stdout

putc schreibt ein Zeichen auf einen Stream

putchar schreibt ein Zeichen auf stdout

puts schreibt eine Zeile auf stdout

remove löscht eine Datei

rename benennt eine Datei um

rewind setzt den Dateizeiger zurück an den Dateianfang

scanf liest nach angegebenem Format von stdin

setbuf definiert einen Ein-/Ausgabe-Puffer für eine Datei

setvbuf definiert die Art der Pufferung für eine Datei

sprintf schreibt nach angegebenem Format an eine Speicherstelle

sscanf liest nach angegebenem Format von einer Speicherstelle

tmpfile erzeugt und öffnet eine temporäre Datei

tmpnam erzeugt einen temporären Dateinamen

ungetc erzeugt das Rückgängigmachen eines vorherigen getc
 
 

Klassifizierungsfunktionen

isalpha prüft auf alphabetisch (ohne deutsche Umlaute zu berücksichtigen)

iscntrl prüft auf Steuerzeichen

isdigit prüft auf Ziffer

isgraph prüft auf Grafikzeichen

islower prüft auf Kleinbuchstaben (ohne deutsche Umlaute)

isprint prüft auf druckbare Zeichen (ohne deutsche Umlaute)

ispunct prüft auf Satzzeichen

isspace prüft auf Trennzeichen (Whitespaces)

isupper prüft auf Großbuchstaben (ohne deutsche Umlaute)

isxdigit prüft auf Hexadezimalziffer
 
 

Umwandlungsfunktionen

atof konvertiert ASCII nach Float

atoi konvertiert ASCII nach Integer

atol konvertiert ASCII nach Long

strtod konvertiert String nach Double

strtol konvertiert String nach Long

strtoul konvertiert String nach Unsigned Long

tolower konvertiert in Kleinschreibung (ohne deutsche Umlaute zu berücksichtigen)

toupper konvertiert in Großschreibung (ohne deutsche Umlaute)
 
 

Steuerungsfunktionen

abort bricht ein Programm mit einer Fehlermeldung ab

exit beendet ein Programm ordnungsgemäß

getenv ermittelt den Wert einer Umgebungsvariablen

main wird beim Programmstart immer zuerst aufgerufen

raise simuliert Signale an das Programm

system erlaubt das Absetzen von Betriebssystem-Kommandos
 
 

Mathematische Funktionen

abs ermittelt den Absolutwert

acos ermittelt den Arcuscosinus

asin ermittelt den Arcussinus

atan ermittelt den Arcustangens

atan2 berechnet den Arcustangens eines Quotienten

bsearch führt eine binäre Suche in einem sortierten Feld durch

ceil rundet positive Zahlen auf, negative Zahlen jedoch ab

cos ermittelt den Cosinus

cosh ermittelt den hyperbolischen Cosinus

exp stellt die Exponentialfunktion dar

fabs ermittelt den Absolutwert einer Fließkommazahl

floor rundet positive Zahlen ab, negative jedoch auf

frexp bestimmt für Float-Werte Mantisse und Exponent zur Basis 2

ldexp berechnet das Produkt aus Mantisse und einer Zweierpotenz

log ermittelt den natürlichen Logarithmus

log10 ermittelt den dekadischen Logarithmus

pow berechnet das Ergebnis von Potenzen

qsort sortiert ein Feld nach dem Quicksort-Algorithmus

rand generiert eine Zufallszahl

sin ermittelt den Sinus

sqrt berechnet die Quadratwurzel

srand initialisiert den Zufallszahlengenerator

tan ermittelt den Tangens
 
 
 
 

Stringfunktionen

strcat verkettet zwei Strings miteinander

strchr sucht in einem String nach einem Zeichen

strcmp vergleicht zwei Strings miteinander

strcpy kopiert einen String auf einen anderen Speicherplatz

strcspn ermittelt die Anzahl der Zeichen eines Strings bis zu einem Begrenzer

strlen ermittelt die Länge eines Strings

strncat verkettet einen String mit einem Teilstring

strncpy kopiert einen Teilstring auf einen anderen Speicherplatz

strpbrk ermittelt die Position des ersten Begrenzungszeichens

strrchr sucht von rechts nach links in einem String nach einem Zeichen

strspn sucht die Position eines nicht zur Vorgabemenge gehörigen Zeichens

strstr sucht einen Teilstring in einem String

strtok führt eine Token-Suche in einem String durch
 
 

Speicherfunktionen

memchr sucht in einem bestimmten Bereich nach einem Zeichen

memcmp vergleicht zwei Speicherbereiche miteinander

memset initialisiert einen Speicherbereich