Void-Datentyp
Swipe um das Menü anzuzeigen
Der Typ muss immer angegeben werden, da es sich um eine statisch typisierte Sprache handelt. Der Compiler muss den genauen Typ jeder Variablen kennen, um die richtige Menge an Speicher zu reservieren und die Typsicherheit zu gewährleisten. Ebenso muss er die Typen von Rückgabewerten und Parametern von Funktionen kennen.
Eine statisch typisierte Sprache ist eine Sprache, in der der Datentyp einer Variablen explizit deklariert und vom Compiler überprüft wird.
main.cpp
12345678910#include <iostream> // Let's consider a simple example. // Imagine you need to create a function that logs something in console. // What type should it return? ___ log(std::string message) { std::cout << message; return ___; }
In diesem Fall ist kein spezifischer Rückgabetyp erforderlich; es könnte sich um int, double, float oder bool handeln. Für dieses Szenario spielt der genaue Typ keine Rolle. Was ist jedoch, wenn überhaupt nichts zurückgegeben werden muss?
Void als Rückgabetyp einer Funktion
Es gibt häufig Funktionen, bei denen scheinbar keine Rückgabe erforderlich ist, wie zum Beispiel:
main.cpp
12345678// Outputting information in console ___ log(std::string message) { std::cout << message; } // Updating values of variables ___ update(int& variable, int new_value) { variable = new_value; } // Calling another function ___ closeFile(std::fstream& file) { file.close(); }
In diesem Fall kann der Datentyp void verwendet werden. Der Datentyp void in der Programmierung kennzeichnet das Fehlen eines Wertes oder Typs. Er kann auf verschiedene Arten eingesetzt werden, dient bei Funktionen jedoch in der Regel dazu, anzugeben, dass eine Funktion keinen Wert zurückgibt.
main.cpp
123456789101112#include <iostream> void log(std::string message) { std::cout << message; return; } int main() { log("This is a void function!"); }
Hinweis
Das Schlüsselwort
returnwurde verwendet, jedoch ohne einen Wert zu übergeben. Das Schlüsselwortreturnkann invoid-Funktionen auch weggelassen werden. Versuchen Sie, es im Beispiel zu entfernen.
Void als Zeiger
Void-Zeiger (void*) sind Zeiger, die keinem bestimmten Datentyp zugeordnet sind. Sie können auf beliebige Objekttypen zeigen, müssen jedoch vor der Verwendung in den entsprechenden Typ umgewandelt werden. Sie sind sehr nützlich, aber manchmal schwer zu verstehen.
main.cpp
1234567891011121314#include <iostream> int main() { int num = 10; // Here we are creating a void pointer // Now it can point to any variable of any data type // You can try changing the type of `num` from `int` to `float` void* ptr = # // To use this pointer, we need to cast it to the appropriate type // VVV int* intPtr = static_cast<int*>(ptr); std::cout << *intPtr << std::endl; // Output: 10 }
In diesem Beispiel ist ptr ein Void-Zeiger, der auf eine Ganzzahl (num) zeigt. Anschließend wird ptr in einen int*-Zeiger umgewandelt, um auf den Wert von num zuzugreifen und ihn auszugeben.
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen