Поделиться через


Визуализация расширения макроса C/C++

Длинные макросы могут быть трудными для чтения. Visual Studio теперь может развернуть макросы C и C++. Вы можете получить копию в буфере обмена того, как выглядит развернутый макрос, заменить макрос встроенным расширением и пошаговую развернуть макрос, чтобы увидеть, как выглядит на каждом этапе расширения. В этой статье описано, как поэкспериментировать со всеми этими функциями.

Необходимые компоненты

  • Visual Studio версии 17.5 или более поздней

Создание примера

  1. Запустите Visual Studio 2022 версии 17.5 или более поздней версии и создайте консольное приложение C++.

  2. Замените код по умолчанию следующим образом:

    #include <iostream>
    
    #define MASS 10.0
    #define ACCELERATION 20.0
    #define SPEED 5.0
    #define TIME 2.0
    #define DISTANCE() (SPEED * TIME)
    #define FORCE()(MASS * ACCELERATION)
    #define WORK()(FORCE() * DISTANCE())
    #define POWER()(WORK()/TIME)
    
    int main()
    {
        std::cout << "Distance: " << DISTANCE() << std::endl;
        std::cout << "Force: " << FORCE() << std::endl;
        std::cout << "Work: " << WORK() << std::endl;
        std::cout << "Power: " << POWER() << std::endl;
    }
    

Копирование развернутого макроса

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

  1. Поместите курсор на POWER макрос в main() пример.

  2. При наведении указателя мыши на макрос параметры отображаются как копировать, развертывать встроенные элементы, визуализировать расширение и поиск в Интернете:

    Снимок экрана: окно макроса с расширением макроса POWER.

    Окно макроса открыто в POWER, чтобы показать, что он расширяется ((10.0 * 20.0) * (5.0 * 2.0)) / 2.0). Параметры копирования, развертывания встроенного, визуального расширения и поиска в Интернете отображаются в нижней части окна.

  3. Нажмите кнопку " Копировать".

  4. Создайте комментарий после POWER строки и выберите вставить (CTRL+V). Расширение макроса в виде комментария рядом с макросом выглядит следующим образом: // (((10.0 * 20.0)* (5.0 * 2.0)) / 2.0). сочетание клавиш для этого действия — CTRL+M, CTRL+C.

Развертывание встроенного макроса

Выполните следующие действия, чтобы развернуть встроенный макрос, который заменяет макрос расширением:

  1. Поместите курсор на POWER макрос в main() пример.
  2. При наведении указателя мыши на макрос параметры отображаются как "Копировать", "Развернуть встроенный", "Визуализировать расширение" и "Поиск в Интернете"
  3. Выберите "Развернуть встроенный". Макрос POWER() заменяется его расширенным значением: std::cout << "Power: " << (((10.0 * 20.0) * (5.0 * 2.0)) / 2.0) << std::endl; Сочетание клавиш для этого действия — CTRL+M, CTRL+I.

Визуализация расширения макроса

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

  1. Поместите курсор на WORK макрос в main() пример.

  2. При наведении указателя мыши на макрос параметры отображаются как "Копировать", "Развернуть встроенный", "Визуализировать расширение" и " Поиск в Интернете".

  3. Выберите расширение визуализации. Сочетание клавиш для этого действия — CTRL+M, а затем CTRL+V.

  4. Откроется окно расширения макроса. Первое расширение WORK макроса видно: (FORCE() * DISTANCE())

    Снимок экрана: окно расширения макроса, которое позволяет выполнять одно действие по одному шагу расширения макроса WORK.

    Окно визуализации макросов открыто в FORCE, чтобы показать, что изначально он расширяется на (FORCE()*DISTANCE()). В окне есть один угловые скобки для перемещения вперед и обратного расширения за раз. Двойные угловые скобки полностью разворачиваются или полностью отменяют расширение макроса.

  5. Щелкните правую угловую скобку, чтобы развернуть FORCE макрос. В окне теперь показано FORCE расширение макроса: (MASS * ACCELERATION) * DISTANCE()

  6. Щелкните правую угловую скобку, чтобы развернуть еще один шаг. В окне теперь показано FORCE расширение макроса: ((10.0 * ACCELERATION) * DISTANCE())

Продолжайте развернуть макрос, чтобы увидеть полное расширение WORK макроса, т ((10.0 * 20.0) * (5.0 * 2.0)). е. Вы можете использовать двойные угловые скобки для полного развертывания макроса или отмены расширения на первый уровень расширения.

См. также

Просмотр макросов UE в Visual Studio