Die Programmiersprache C (Eine Kurzreferenz)




 

Inhalt:

1. Schlüsselwörter in C (reservierte Wörter
2. Rangfolge der Operatoren
3. Präprozessoranweisungen
4. Datentypen
5.Konstanten
6. Speicherklassen
7. Funktionen
8. Zeiger
9. dynamische Speicherverwaltung
10. Dateiarbeit
11. wichtige Bibliotheksfunktionen
12. Die Formatangaben von printf und scanf
 


 

1. Schlüsselwörter in C (reservierte Wörter)

 break

case

char

const

continue

default

do

double

else

enum

extern

float

for

goto

if

int

long

register

return

short

signed

sizeof

static

struct

switch

typedef

union

unsigned

void

while

zurück zum Inhaltsverzeichnis

 

2. Rangfolge der Operatoren

 Operator

 Auswertung von

 () [] . ->

 links -> rechts

 !  ~  -  ++  --  &  *  (type)  sizeof

 rechts -> links

 * / %

 links->rechts

 + -

 links->rechts

 << >>

 links->rechts

 < <= > >=

 links->rechts

 == !=

 links->rechts

 &

 links->rechts

 ^

 links->rechts

 |

 links->rechts

 &&

 links->rechts

 ||

 links->rechts

 ?:

 rechts->links

 = += -= etc.

 rechts->links

 ,

 links->rechts

zurück zum Inhaltsverzeichnis

 

3. Präprozessoranweisungen

 #define

 Makros definieren

 #elif

 else...if-Zweig einer #if...-Anweisung

 #else

 else-Zweig einer #if...-Anweisung

 #endif

 Abschluß einer #if-Anweisung

 #error

 Fehlermeldung ausgeben

 #if

 Bedingte Compilierung, wenn Bedingung zutrifft

 #ifdef

 Bedingte Compilierung, wenn ein Makro definiert ist

 #ifndef

 Bedingte Compilierung, wenn ein Makro nicht definiert ist

 #include

 Zusätzliche Quelltexte aufnehmen

 #undef

 Makro-Definition entfernen

zurück zum Inhaltsverzeichnis

 

4. Datentypen

4.1. einfache Datentypen

char, unsigned char
int, unsigned int (unsigned), long int (long)
float
double

4.2. komplexe Datentypen

Felder

char name [32];

Aufzählung

enum boolean
{

false,
true

};

Struktur

struct datum
{

int tag;
int monat;
int jahr;

};

Union

union int_oder_float
{

int var1;
float var2;

};

Bitfelder

struct beispiel
{

unsigned a: 1;
unsigned b: 4;
unsigned c: 3;

};

4.3. Benutzerdefinierte Datentypen

typedef  int  WORD;    /* typedef  <bekannter Typ> <neuer Typ>; */


zurück zum Inhaltsverzeichnis

 

5. Konstanten

5.1. Makro

 #define PI  3.1415

5.2. unveränderliche "Variable"

const float pi = 3.1415;


zurück zum Inhaltsverzeichnis

 

6. Speicherklassen

6.1. automatisch

auto int a, b, c;


Das Schlüsselwort auto kann entfallen.
Geltungsbereich: lokal / global
Lebensdauer: Block / Modul / Programm

6.2. extern

extern float wurzel, potenz;


Geltungsbereich: global
Lebensdauer: Programm

6.3. statisch

static int first = TRUE;


Geltungsbereich: lokal
Lebensdauer: Programm

6.4. register

register long counter;


Geltungsbereich: lokal
Lebensdauer: Block / Modul / Programm

zurück zum Inhaltsverzeichnis

 

7. Funktionen

7.1. Prototyp

double square (double);

7.2. Definition

double square (double value)
{

return (value * value);

}


zurück zum Inhaltsverzeichnis

 

8. Zeiger (Pointer)

8.1. Definition einer Zeigervariablen

char *ptr;

8.2. Zuweisung einer Adresse an eine Zeigervariable

char wort [20];
char *ptr;
ptr = & wort[0];    /* bzw. ptr = wort;  */

8.3. Zuweisung eines Wertes an eine Adresse

*ptr = 'A';

8.4. Zeigerarithmetik

ptr++;

Beispiel: Funktion zum Kopieren eines Strings

void strcpy (char *dstPtr, char *srcPtr)
{

while ((*dstPtr++ = *srcPtr++) != '\0')

;

}


zurück zum Inhaltsverzeichnis

 

9. Dynamische Speicherverwaltung

9.1. Anforderung von Speicher

int *buffer;
buffer = (int *) malloc (size);

9.2. Freigeben des angeforderten Speichers, wenn dieser nicht mehr benötigt wird

free (buffer);


zurück zum Inhaltsverzeichnis

 

10. Dateiarbeit

10.1. Öffnen der Datei

FILE *stream;
stream = fopen ("TESTFILE.TXT", "wt");

10.2. Fehlerbehandlung

if (stream == NULL)
{

fprintf (stderr, "Fehler beim Öffnen der Datei !\n");
return (1);

}

10.3. Lesen / Schreiben / Positionieren

fread (buffer, itemSize, nItems, stream);
fscanf (stream, "%d", &count);
fwrite (buffer, itemSize, nItems, stream);
fprintf (stream, "%d", count);
fseek (stream, 0L, SEEK_END);

10.4. Schließen der Datei nach Benutzung

fclose (stream);


zurück zum Inhaltsverzeichnis

 

11. Wichtige Bibliotheksfunktionen

Funktion

Typ

vereinbart in

Zweck

abs(i)

int

stdlib.h

Absolutwert von i

ceil(d)

double

math.h

zur nächsten ganzen Zahl aufrunden

cos(d)

double

math.h

Cosinus von d

cosh(d)

double

math.h

hyperbolischer Cosinus

exp(d)

double

math.h

e mit d potenzieren

fabs(d)

double

math.h

Absolutwert von d

floor(d)

double

math.h

zur nächstniedrigeren ganzen Zahl abrunden

fmod(d1,d2)

double

math.h

Divisionsrest von d1/d2 mit Vorzeichen wie d1

getchar()

int

stdio.h

Zeichen von der Standardeingabe einlesen

log(d)

double

math.h

natürlicher Logarithmus von d

pow(d1,d2)

double

math.h

d1 mit d2 potenzieren

printf(...)

int

stdio.h

Datenelemente auf Standardausgabe ausgeben

putchar(c)

int

stdio.h

ein Zeichen auf Standardausgabe ausgeben

rand()

int

stdlib.h

eine positive ganze Zufallszahl erzeugen

randomize()

void

stdlib.h

Zufallsgenerator initialisieren

sin(d)

double

math.h

Sinus von d

sqrt(d)

double

math.h

Quadratwurzel von d

srand(u)

void

stdlib.h

Zufallsgenerator initialisieren

scanf(...)

int

stdio.h

Datenelemente von Standardeingabe lesen

tan(d)

double

math.h

Tangens von d

toupper(c)

int

ctype.h

Umwandlung in einen Großbuchstaben

tolower(c)

int

ctype.h

Umwandlung in einen Kleinbuchstaben

zurück zum Inhaltsverzeichnis

 

12. Die Formatangaben von printf und scanf

 Platzhalter

 für Typ

 wichtige Variationen

 %d

 int

 %x, %o

 %ld

 long

 %lx

 %f

 float

 %e, %g

 %lf

 double

 %le, %lg

 %c

 char

 -

 %s

 Zeichenkette mit abschl. '\0'

 -

zurück zum Inhaltsverzeichnis
 


zurück zur Homepage

(C) Klaus Rittmeier