«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как вы можете получить доступ к значению переменной, используя ее имя в виде строки в C++?

Как вы можете получить доступ к значению переменной, используя ее имя в виде строки в C++?

Опубликовано 27 ноября 2024 г.
Просматривать:951

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

Доступ к значению переменной из строки, представляющей имя переменной в C

В C можно получить значение переменной динамически, используя ее имя в виде строки. Этот метод, широко известный как отражение, обеспечивает гибкие возможности отладки и самоанализа.

Чтобы добиться этого, вы можете использовать следующие шаги:

  1. Получить переменную Адрес:

    • Используйте оператор «&», чтобы получить адрес переменной. Например, &counter возвращает ячейку памяти, в которой хранится счетчик.
  2. Приведение к указателю:

    • Приведение переменной адрес указателя типа переменной. Это позволяет вам получить доступ к значению переменной косвенно. Например: int* counterPtr = static_cast(&counter);
  3. Значение доступа через указатель:

    • Используйте оператор разыменования (*) для доступа к значению переменной через указатель. Например: std::cout
  4. Оболочка функции:

    • Чтобы сделать процесс более удобным, вы можете создать функцию, которая принимает строку, представляющую имя переменной, и возвращает значение переменной. Эта функция упрощает шаги, описанные выше:

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

Использование:

С помощью функции valueOf вы можете динамически получать значения переменных:

std::cout ("counter") 
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3