"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment accéder à la valeur d'une variable en utilisant son nom comme chaîne en C++ ?

Comment accéder à la valeur d'une variable en utilisant son nom comme chaîne en C++ ?

Publié le 2024-11-27
Parcourir:588

How Can You Access a Variable\'s Value Using its Name as a String in C  ?

Accès à la valeur d'une variable à partir d'une chaîne représentant le nom de la variable en C

En C , il est possible d'obtenir dynamiquement la valeur d'une variable en utilisant son nom sous forme de chaîne. Cette technique, communément appelée réflexion, permet des capacités flexibles de débogage et d'introspection.

Pour y parvenir, vous pouvez utiliser les étapes suivantes :

  1. Obtenir la variable Adresse :

    • Utilisez l'opérateur "&" pour récupérer l'adresse de la variable. Par exemple, &counter renvoie l'emplacement mémoire où le compteur est stocké.
  2. Cast to Pointer :

    • Cast the variable adresse à un pointeur du type de la variable. Cela vous permet d'accéder indirectement à la valeur de la variable. Par exemple : int* counterPtr = static_cast(&counter);
  3. Accès à la valeur via le pointeur :

    • Utilisez l'opérateur de déréférencement (*) pour accéder à la valeur de la variable via le pointeur. Par exemple : std::cout
  4. Function Wrapper :

    • Pour rendre le processus plus pratique, vous pouvez créer une fonction qui prend une chaîne représentant le nom de la variable et renvoie la valeur de la variable. Cette fonction simplifie les étapes décrites ci-dessus :

      template 
      T valueOf(const std::string& varName) {
        T* varPtr = static_cast(std::addressof(varName));
        return *varPtr;
      }

Utilisation :

Avec la fonction valueOf, vous pouvez obtenir des valeurs de variables de manière dynamique :

std::cout ("counter") 
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3