Programmiersprache C/C++

6. Datentypen

Datentypenvereinbarung durch typedef

Für Datentypenvereinbarungen mittels typedef gibt es zwei Möglichkeiten: Da in C das Konzept der Strukturäquivalenz befolgt wird, wird durch typedef immer nur ein neuer Name (zur besseren Lesbarkeit, als Abkürzung) eingeführt.
Mit dem neuen Namen vereinbarte Variablen sind voll kompatibel zu Variablen, die in Orginalnotation vereinbart worden sind.

Bemerkung:

  #define uint   unsigned int
erreicht im wesentlichen den gleichen Effekt wie
  typedef unsigned int  uint;       ??? in ansi c verboten ???
Bei Verwendung von typedef hat der Compiler jedoch bessere Prüfmöglichkeiten.
Beispiel:
Die Mehrfachbenutzung des Namens uint führt hier im allgemeinen lediglich zu einer Warnung des Compilers:
  #define uint   unsigned int
  #define uint   char
Hier führt die Mehrfachbenutzung von uint jedoch zu einem Fehler:
  typedef unsigned int  uint;
  typedef char  uint;
Beispiel:
Das folgende Programm ist ohne Probleme übersetzbar und ausührbar:
  #include <stdio.h>

  #define UINT   unsigned int

  int main(void)
  {
    typedef unsigned int  uint;
  
    uint i1;
    UINT i2;
    unsigned int i3;

    i1 = i2 = i3 = 0;
    printf("%d %d %d\n", i1, i2, i3);

    return 0;
  }


Zurück zum Menü
Zurück zur vorigen Seite Weiter zur nächsten Seite

P. Böhme, 24.12.1995