Void Data Type
Glissez pour afficher le menu
Il est toujours nécessaire de spécifier le type car il s'agit d'un langage à typage statique. Le compilateur doit connaître le type exact de chaque variable afin d'allouer la quantité de mémoire appropriée et d'assurer la sécurité des types. Il doit également connaître les types des valeurs de retour et des paramètres des fonctions.
Un langage à typage statique est un langage dans lequel le type de données d'une variable est explicitement déclaré et imposé par le compilateur.
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 ___; }
Dans ce cas, il n'est pas nécessaire d'utiliser un type de retour spécifique, cela pourrait être int, double, float ou bool. Pour ce scénario, le type exact n'a pas d'importance. En fait, que se passe-t-il si nous n'avons rien à retourner du tout ?
Void comme type de retour de fonction
Il existe souvent des fonctions qui ne semblent pas avoir besoin de retourner quoi que ce soit, comme :
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(); }
Dans ce cas, nous pouvons utiliser le type de données void. Le type de données void en programmation indique l'absence de toute valeur ou type. Il peut être utilisé de différentes manières, mais pour les fonctions, il sert généralement à indiquer qu'une fonction ne retourne aucune valeur.
main.cpp
123456789101112#include <iostream> void log(std::string message) { std::cout << message; return; } int main() { log("This is a void function!"); }
Remarque
Nous avons utilisé le mot-clé
returnsans réellement passer de valeur. Le mot-cléreturnpeut également être omis dans les fonctions de typevoid. Essayez de le supprimer dans l'exemple.
Void en tant que pointeur
Les pointeurs void (void*) sont des pointeurs qui ne sont associés à aucun type de données spécifique. Ils peuvent pointer vers n'importe quel type d'objet, mais il est nécessaire de les convertir vers le type approprié avant de les utiliser. Ils sont très utiles mais parfois difficiles à comprendre.
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 }
Dans cet exemple, ptr est un pointeur void qui pointe vers un entier (num). Nous convertissons ensuite ptr en un pointeur int* pour accéder à la valeur de num et l'afficher.
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion