Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Macros longas podem ser difíceis de ler. O Visual Studio agora pode expandir macros C e C++. Você pode obter uma cópia na área de transferência da aparência da macro expandida, substituir a macro em linha por sua expansão e expandir passo a passo uma macro para ver como ela se parece em cada estágio da expansão. Neste artigo, você experimenta todos esses recursos.
Pré-requisitos
- Visual Studio versão 17.5 ou posterior
Criar o exemplo
Inicie o Visual Studio 2022, versão 17.5 ou posterior, e crie um aplicativo de console C++.
Substitua o código padrão por:
#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; }
Copiar uma macro expandida
Você pode inspecionar o valor expandido de uma macro, mesmo quando várias etapas de pré-processador estão envolvidas, usando as seguintes etapas:
Coloque o cursor na macro
POWERdentro demain()no exemplo.Conforme você passa o mouse sobre a macro, aparecem as opções para Copiar, Expandir Em Linha, Visualizar Expansão e Pesquisar Online:
A janela de macro é aberta em POWER para mostrar que ela se expande para (((10.0 * 20.0) * (5.0 * 2.0)) / 2.0). As opções para copiar, expandir em linha, expansão visual e pesquisar online aparecem na parte inferior da janela.
Escolha Copiar.
Crie um comentário após a linha
POWERe escolha colar (CTRL+V). A expansão da macro, como comentário próximo à sua macro, tem o seguinte formato:// (((10.0 * 20.0)* (5.0 * 2.0)) / 2.0). O atalho de teclado para essa ação é CTRL+M, CTRL+C.
Expandir uma macro em linha
Use as etapas a seguir para expandir uma macro em linha, que substitui a macro pela expansão:
- Coloque o cursor na macro
POWERdentro demain()no exemplo. - Conforme você passa o mouse sobre a macro, aparecem as opções para Copiar, Expandir Em Linha, Visualizar Expansão e Pesquisar Online
- Escolha Expandir Em Linha. A macro
POWER()é substituída pelo valor expandido:std::cout << "Power: " << (((10.0 * 20.0) * (5.0 * 2.0)) / 2.0) << std::endl;. O atalho de teclado para essa ação é CTRL+M, CTRL+I.
Visualizar a expansão de macros
Você pode expandir uma macro uma etapa de cada vez. Isso é útil quando há macros aninhadas e você quer ver a expansão passo a passo. Para visualizar a expansão da macro WORK, use as seguintes etapas:
Coloque o cursor na macro
WORKdentro demain()no exemplo.Conforme você passa o mouse sobre a macro, aparecem as opções para Copiar, Expandir Em Linha, Visualizar Expansão e Pesquisar Online.
Escolha Visualizar Expansão. O atalho de teclado para essa ação é CTRL+M seguido por CTRL+V.
A janela de expansão de macro é exibida. A primeira expansão da macro
WORKé visível:(FORCE() * DISTANCE()):
A janela de visualização de macro é aberta em FORCE para mostrar que ela se expande inicialmente para (FORCE()*DISTANCE()). Existem colchetes únicos na janela para avançar e retroceder uma única expansão de cada vez. Os colchetes duplos expandem ou desfazem totalmente a expansão da macro.
Clique no colchete direito para expandir a macro
FORCE. A janela agora mostra a expansão da macroFORCE:(MASS * ACCELERATION) * DISTANCE().Clique no colchete direito para expandir outra etapa. A janela agora mostra a expansão da macro
FORCE:((10.0 * ACCELERATION) * DISTANCE()).
Continue a expandir a macro para ver a expansão completa da macro WORK, que é: ((10.0 * 20.0) * (5.0 * 2.0)).
Você pode usar os colchetes duplos para expandir totalmente a macro ou para reverter a expansão para o primeiro nível de expansão.