Systemnahe Programmierung in Chome Systemnahe Programmierung in C: Definition von Strukturen Prof. Dr. Uwe Schmidt FH Wedel

Definition von Strukturen

weiter

weiter

Typ- und Variablendeklarationen
Beispiel: struct.c

   1/* struct-Definition */
   2
   3struct complex
   4{
   5  double re;
   6  double im;
   7};
   8
   9
  10/* Variablen-Deklaration */
  11
  12struct complex c1,
  13  c2,
  14  cvec[10],
  15  cmat[10][10];
  16
  17
  18/* geschachtelte Strukturen */
  19
  20struct datum
  21{
  22  unsigned char tag;
  23  unsigned char monat;
  24  unsigned int jahr;
  25};
  26
  27struct person
  28{
  29  char name[20];
  30  char vorname[10];
  31  struct datum geboren;
  32};
  33
  34/* Variablen-Deklarationen */
  35
  36struct person emil,
  37  egon,
  38  angestellte[100],
  39  *persptr;
weiter

weiter

Übersetzen

cc -c -Wall struct.c

weiter

weiter

Gemischte Typ- und Variablendeklarationen
Beispiel: gemisch.c

   1/* gleichzeitige struct-Definition und Variablendeklaration */
   2
   3struct complex
   4{
   5  double re;
   6  double im;
   7}
   8c1c2;
   9
  10struct complex cvec[10]cmat[10][10];
  11
  12
  13/* anonyme struct-Definition */
  14
  15struct
  16{
  17  double re;
  18  double im;
  19}
  20d1d2dvec[10]dmat[10][10];
weiter

weiter

Übersetzen

cc -c -Wall gemisch.c

weiter

weiter

typedef und struct
Beispiel: typedef.c

   1/* typedef zur Vermeidung der umstaendlichen struct--Syntax */
   2
   3typedef struct
   4{
   5  double re;
   6  double im;
   7}
   8Complex;
   9
  10/* Referenz nur noch ueber typedef-Namen */
  11
  12Complex c2cmat[10][10];
  13
  14/* guter Stil, nur bei Vorwaertsreferenzen
  15   (fuer rekursive Datenstrukturen) nicht anwendbar
  16*/
weiter

weiter

Übersetzen

cc -c -Wall typedef.c

weiter

weiter

Namensräume
Beispiel: namensraeume.c

   1/* verschiedene Namensraeume:
   2   fuer Variablen, Strukturen, Komponenten
   3*/
   4
   5struct complex
   6{
   7  double re;
   8  double im;
   9}
  10complex;
  11
  12
  13/* legal */
  14
  15struct x
  16{
  17  int x;
  18}
  19x;
weiter

weiter

Übersetzen

cc -c -Wall namensraeume.c

weiter

Letzte Änderung: 11.01.2007
© Prof. Dr. Uwe Schmidt
Prof. Dr. Uwe Schmidt FH Wedel