Визуализация расширения макроса C/C++
Длинные макросы могут быть трудными для чтения. Visual Studio теперь может развернуть макросы C и C++. Вы можете получить копию в буфере обмена того, как выглядит развернутый макрос, заменить макрос встроенным расширением и пошаговую развернуть макрос, чтобы увидеть, как выглядит на каждом этапе расширения. В этой статье описано, как поэкспериментировать со всеми этими функциями.
Необходимые компоненты
- Visual Studio версии 17.5 или более поздней
Создание примера
Запустите Visual Studio 2022 версии 17.5 или более поздней версии и создайте консольное приложение C++.
Замените код по умолчанию следующим образом:
#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; }
Копирование развернутого макроса
Вы можете проверить развернутое значение макроса, даже если участвуют несколько шагов препроцессора, выполнив следующие действия:
Поместите курсор на
POWER
макрос вmain()
пример.При наведении указателя мыши на макрос параметры отображаются как копировать, развертывать встроенные элементы, визуализировать расширение и поиск в Интернете:
Окно макроса открыто в POWER, чтобы показать, что он расширяется ((10.0 * 20.0) * (5.0 * 2.0)) / 2.0). Параметры копирования, развертывания встроенного, визуального расширения и поиска в Интернете отображаются в нижней части окна.
Нажмите кнопку " Копировать".
Создайте комментарий после
POWER
строки и выберите вставить (CTRL+V). Расширение макроса в виде комментария рядом с макросом выглядит следующим образом:// (((10.0 * 20.0)* (5.0 * 2.0)) / 2.0).
сочетание клавиш для этого действия — CTRL+M, CTRL+C.
Развертывание встроенного макроса
Выполните следующие действия, чтобы развернуть встроенный макрос, который заменяет макрос расширением:
- Поместите курсор на
POWER
макрос вmain()
пример. - При наведении указателя мыши на макрос параметры отображаются как "Копировать", "Развернуть встроенный", "Визуализировать расширение" и "Поиск в Интернете"
- Выберите "Развернуть встроенный". Макрос
POWER()
заменяется его расширенным значением:std::cout << "Power: " << (((10.0 * 20.0) * (5.0 * 2.0)) / 2.0) << std::endl;
Сочетание клавиш для этого действия — CTRL+M, CTRL+I.
Визуализация расширения макроса
Макрос можно развернуть один шаг за раз. Это полезно, если есть вложенные макросы, и вы хотите увидеть расширение пошаговые инструкции. Чтобы визуализировать расширение макроса для WORK
макроса, выполните следующие действия.
Поместите курсор на
WORK
макрос вmain()
пример.При наведении указателя мыши на макрос параметры отображаются как "Копировать", "Развернуть встроенный", "Визуализировать расширение" и " Поиск в Интернете".
Выберите расширение визуализации. Сочетание клавиш для этого действия — CTRL+M, а затем CTRL+V.
Откроется окно расширения макроса. Первое расширение
WORK
макроса видно:(FORCE() * DISTANCE())
Окно визуализации макросов открыто в FORCE, чтобы показать, что изначально он расширяется на (FORCE()*DISTANCE()). В окне есть один угловые скобки для перемещения вперед и обратного расширения за раз. Двойные угловые скобки полностью разворачиваются или полностью отменяют расширение макроса.
Щелкните правую угловую скобку, чтобы развернуть
FORCE
макрос. В окне теперь показаноFORCE
расширение макроса:(MASS * ACCELERATION) * DISTANCE()
Щелкните правую угловую скобку, чтобы развернуть еще один шаг. В окне теперь показано
FORCE
расширение макроса:((10.0 * ACCELERATION) * DISTANCE())
Продолжайте развернуть макрос, чтобы увидеть полное расширение WORK
макроса, т ((10.0 * 20.0) * (5.0 * 2.0))
. е.
Вы можете использовать двойные угловые скобки для полного развертывания макроса или отмены расширения на первый уровень расширения.