Как расширить ссылки на макросы VС++ с помощью Visual Studio?

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

Ответ 1

"Project + Properties, C/С++, Preprocessor, Preprocess to a File = Yes. Скомпилируйте и откройте файл .i в каталоге сборки.

Ответ 2

Я слышал все возможные отрицательные ответы по теме:

  • макросы могут быть расширены без оценки
  • Препроцессор должен анализировать также файлы.
  • Вложенные макросы могут быть чрезмерно сложными
  • условная предварительная обработка может быть сложной
  • макросы - это зло, просто избегайте их и т.д.
  • и т.д....

Все они верны, но IMO они сталкиваются с реализацией каждодневного программирования.

Фактически, работая над старым проектом C, где макросы, где в основном просто используются как функции, для меня стали иметь решающее значение. Генерирование всех предварительно обработанных файлов с помощью /P работает, но является излишним и занимает время. Мне просто нужен инструмент, который расширяет простой макрос, определенный несколькими строками выше или максимум в другом файле.

Как это сделать?

  • В Linux просто используйте GDB и его возможности расширения макросов.
  • В окнах я использую https://www.jetbrains.com/resharper-cpp/ интегрированный в Visual Studio

Итак, да, в практическом смысле это возможно.