Programmiersprache C/C++

Datentyp void

Der Datentyp void läßt sich vielleicht am besten mit "leerer Datentyp" beschreiben.
void gehört zu ANSI-C und ist in früheren C-Versionen nicht enthalten.

Das Schlüsselwort void wird in drei Zusammenhängen verwendet:

Eine Funktion mit dem Ergebnistyp void liefert keinen Wert zurück, eine Funktion mit void als Parameterliste erwartet keine Parameter, und ein void-Zeiger zeigt auf keinen bestimmten Datentyp, d.h. er ist generischer Natur.

Ein als void deklarierter Zeiger kann auf die Adresse jeder Variablen gesetzt werden, die nicht als const oder volatile deklariert ist. Zugriffe über solche Zeiger sind nur nach einer expliziten Typumwandlung (casting) möglich, die dem Compiler mitteilt, wie viele Bytes welcher Struktur geschrieben bzw. gelesen werden sollen. Hinsichtlich der Umwandlung in andere Zeigertypen gibt es bei void-Zeigern keine Einschränkungen.

Ein als void deklarierter Zeiger kann auf die Adresse von Funktionen gesetzt werden, nicht aber auf die Adresse von Elementen einer Klasse in C++.

Als Datentyp einer Variablen ist void nicht verwendbar.

Beispiel:

  void vobject;             /* !!! nicht zulaessig */
  void *pv;                 /* OK: Zeiger auf ein beliebiges Objekt */
  int  *pint; int i;

  void main(void)           /* main setzt keinen Rueckkehrcode */
  {                         /* main besitzt keine Aufrufparameter */
    pv = &i;                /* OK */
    pint = (int *)pv;       /* (int *) in C wahlweise,
                               in C++ erforderlich */
  } 
Bemerkungen: Beispiel:
Anwendung von void im assert-Makro
  #define assert(EX) ((EX) ? ((void)0) : _assert("EX", __FILE__, __LINE__))
Wenn die Bedingung EX erfüllt ist, dann ist nichts zu tun, ansonsten ist die Funktion _assert aufzurufen (AIX).


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

P. Böhme, 01.01.1996