Void (Schlüsselwort)

Void (Schlüsselwort)

Das Schlüsselwort void (engl. für „nichtig“, „ungültig“, „leer“) wird in einigen Programmiersprachen anstelle eines Datentyps benutzt, um anzugeben, dass keine Daten übergeben werden oder der Typ der Daten nicht angegeben ist. Syntaktisch wird void wie ein Datentyp behandelt, aber es kann nur an bestimmten Stellen stehen. So ist es zum Beispiel nicht möglich, eine Variable vom Typ void zu deklarieren.

Inhaltsverzeichnis

Void als Rückgabetyp

In den Programmiersprachen C, C++, Java und C# wird void für Funktionen bzw. Methoden ohne Rückgabewert (sog. Prozeduren) benutzt. In diesen Sprachen muss syntaktisch für jede Funktion/Methode ein Rückgabetyp angegeben werden; wenn kein Wert zurückgegeben wird, steht statt dessen void.

Das folgende Beispiel definiert eine Methode ohne Rückgabewert in Java:

void hallo() {
    System.out.println("Hallo Welt!");
}

Void in C und C++

In C und C++ wird void noch für drei weitere Aufgaben genutzt:

Untypisierte Zeiger

Mit void * wird ein Zeiger deklariert, ohne den Typ der Daten anzugeben, auf die der Zeiger verweist (untypisierter Zeiger, pointer to void). Ein untypisierter Zeiger kann nicht dereferenziert oder für Zeigerarithmetik benutzt werden, sondern muss zuerst per Typumwandlung in einen typisierten Zeiger umgewandelt werden.

Funktionsargumente

Funktionen ohne Argumente sollten in C mit dem Schlüsselwort void anstelle der Argumentliste deklariert werden, wie in folgendem Beispiel:

void hallo(void) {
    printf("Hallo Welt!\n");
}

Dieser Sonderfall ist nötig, weil es in C zwei verschiedene Arten gibt, Funktionen zu deklarieren. In der ursprünglichen Notation (old-style) wurden im Funktionskopf die Typen der Argumente nicht angegeben; die neue Notation wurde eingeführt, damit Compiler Anzahl und Typ von Argumenten bei einem Funktionsaufruf überprüfen können. Um Kompatibilität mit bestehendem C-Code zu gewährleisten, wurden Deklarationen mit der alten Notation weiterhin erlaubt. Damit Funktionsdeklarationen ohne Argumente nicht fälschlicherweise als old-style erkannt werden, wurde festgelegt, dass in diesem Fall das Schlüsselwort void anstelle der Argumentliste steht.

In C++ ist void als Argumentliste äquivalent zu einer leeren Argumentliste.[1] Old-style-Funktionsdeklarationen sind in C++ nicht möglich.[2]

Typumwandlung

Eine Typumwandlung, bei der statt des Typs void steht, kann benutzt werden, um explizit anzugeben, dass ein Wert nicht benutzt wird. Ein Beispiel:

double versandkosten(int anzahl, double preis) {
    (void)preis; // bisher nicht genutzt
    return 2.0 * anzahl;
}

Der Programmierer gibt damit an, dass das Argument preis nicht vergessen wurde, sondern absichtlich nicht genutzt wird. Dies dient dazu, den Code zu dokumentieren und eventuell Warnungen des Compiler zu vermeiden.

Einzelnachweise

  1. Margaret A. Ellis, Bjarne Stroustrup: The Annotated C++ Reference Manual. Addison-Wesley, Reading, Massachusetts 1990, ISBN 978-0201514599, S. 138.
  2. Bjarne Stroustrup: The C++ Programming Language, Special Edition. Addison-Wesley, Reading, Massachusetts 2000, ISBN 978-0-201-70073-2, S. 816-817.

Wikimedia Foundation.

Игры ⚽ Поможем решить контрольную работу

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Void — steht für: Void (Astronomie), eine astronomische Struktur mit sehr wenig Materie und damit sehr geringer Dichte Void (Verbindungstechnik) Void (Schlüsselwort), ein Schlüsselwort in einigen Programmiersprachen Void Vacon, eine französische… …   Deutsch Wikipedia

  • Sprachelemente von C-Sharp — Dieser Artikel bietet eine Übersicht einiger Sprachelemente von C#. Inhaltsverzeichnis 1 Bedingte Ausführung (if, else, switch) 2 Schleifen (for, do, while, foreach) 3 Die Sprunganweisungen break, c …   Deutsch Wikipedia

  • Syntax von C-Sharp — Dieser Artikel bietet eine Übersicht einiger Sprachelemente von C#. Inhaltsverzeichnis 1 Bedingte Ausführung (if, else, switch) 2 Schleifen (for, do, while, foreach) 3 Die Sprungbefehle break, continue, goto und return 4 Die using Anweisung …   Deutsch Wikipedia

  • Objective-C — Entwickler: Brad Cox, Tom Love Typisierung: stark, statisch, explizit Einflüsse: Smalltalk, C (Programmiersprache) Betriebssystem: Mac OS X …   Deutsch Wikipedia

  • Java-Syntax — Duke, das Java Maskottchen Die Syntax der Programmiersprache Java ist in der Java Language Specification definiert, ebenso wie die Semantik von Java. Dieser Artikel gibt einen Überblick über die Java Syntax und stellt einige ihrer Besonderheiten… …   Deutsch Wikipedia

  • ObjC — Objective C, auch kurz ObjC genannt, erweitert die Programmiersprache C um Sprachmittel zur objektorientierten Programmierung. Objective C++ erlaubt teilweise die Mischung von Objective C mit C++ Code mit dem Ziel, älteren Code verwenden zu… …   Deutsch Wikipedia

  • Objc — Objective C, auch kurz ObjC genannt, erweitert die Programmiersprache C um Sprachmittel zur objektorientierten Programmierung. Objective C++ erlaubt teilweise die Mischung von Objective C mit C++ Code mit dem Ziel, älteren Code verwenden zu… …   Deutsch Wikipedia

  • Objective-C++ — Objective C, auch kurz ObjC genannt, erweitert die Programmiersprache C um Sprachmittel zur objektorientierten Programmierung. Objective C++ erlaubt teilweise die Mischung von Objective C mit C++ Code mit dem Ziel, älteren Code verwenden zu… …   Deutsch Wikipedia

  • Objective-c — Objective C, auch kurz ObjC genannt, erweitert die Programmiersprache C um Sprachmittel zur objektorientierten Programmierung. Objective C++ erlaubt teilweise die Mischung von Objective C mit C++ Code mit dem Ziel, älteren Code verwenden zu… …   Deutsch Wikipedia

  • Objective C — Objective C, auch kurz ObjC genannt, erweitert die Programmiersprache C um Sprachmittel zur objektorientierten Programmierung. Objective C++ erlaubt teilweise die Mischung von Objective C mit C++ Code mit dem Ziel, älteren Code verwenden zu… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”