Wizualizowanie rozszerzenia makr języka C/C++
Długie makra mogą być trudne do odczytania. Program Visual Studio może teraz rozwinąć makra C i C++. Możesz uzyskać kopię w schowku tego, jak wygląda rozwinięte makro, zastąpić makro wbudowanym rozszerzeniem, a następnie rozwinąć makro krok po kroku, aby zobaczyć, jak wygląda na każdym etapie rozszerzania. W tym artykule poeksperymentujesz ze wszystkimi tymi funkcjami.
Wymagania wstępne
- Visual Studio w wersji 17.5 lub nowszej
Tworzenie przykładu
Uruchom program Visual Studio 2022 w wersji 17.5 lub nowszej i utwórz aplikację konsolową języka C++.
Zastąp domyślny kod:
#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; }
Kopiowanie rozwiniętego makra
Możesz sprawdzić rozszerzoną wartość makra, nawet jeśli jest zaangażowanych kilka kroków preprocesora, wykonując następujące czynności:
Umieść kursor na makrze
POWER
wewnątrzmain()
w przykładzie.Po umieszczeniu wskaźnika myszy na makrze opcje są wyświetlane w obszarze Kopiuj, Rozwiń śródliniowy, Wizualizuj rozszerzenie i Wyszukaj w trybie online:
Okno makra jest otwarte w usłudze POWER, aby pokazać, że rozwija się do (((10.0 * 20.0) * (5.0 * 2.0)) / 2.0). Opcje kopiowania, rozwijania wbudowanego, rozszerzania wizualizacji i wyszukiwania w trybie online są wyświetlane w dolnej części okna.
Wybierz pozycję Kopiuj.
Utwórz komentarz po
POWER
wierszu i wybierz polecenie wklej (CTRL+V). Rozszerzenie makra, jako komentarz w pobliżu makra, wygląda następująco:// (((10.0 * 20.0)* (5.0 * 2.0)) / 2.0).
Skrót klawiaturowy dla tej akcji to CTRL+M, CTRL+C.
Rozszerzanie wbudowanego makra
Wykonaj następujące kroki, aby rozwinąć wbudowane makro, które zastępuje makro rozszerzeniem:
- Umieść kursor na makrze
POWER
wewnątrzmain()
w przykładzie. - Po umieszczeniu kursora na makrze opcje są wyświetlane w pozycji Kopiuj, Rozwiń wbudowane, Wizualizuj rozszerzenie i Wyszukaj w trybie online
- Wybierz pozycję Rozwiń wbudowany. Makro
POWER()
jest zastępowane rozszerzoną wartością:std::cout << "Power: " << (((10.0 * 20.0) * (5.0 * 2.0)) / 2.0) << std::endl;
. Skrót klawiaturowy dla tej akcji to CTRL+M, CTRL+I.
Wizualizowanie rozszerzenia makr
Makro można rozwinąć jeden krok naraz. Jest to przydatne, gdy istnieją makra zagnieżdżone i chcesz zobaczyć rozszerzenie krok po kroku. Aby zwizualizować rozszerzenie makra dla WORK
makra, wykonaj następujące kroki:
Umieść kursor na makrze
WORK
wewnątrzmain()
w przykładzie.Po umieszczeniu kursora na makrze opcje są wyświetlane w pozycji Kopiuj, Rozwiń śródliniową, Wizualizuj rozszerzenie i Wyszukaj w trybie online.
Wybierz pozycję Wizualizuj rozszerzenie. Skrót klawiaturowy dla tej akcji to CTRL+M, a następnie CTRL+V.
Zostanie wyświetlone okno rozszerzenia makra. Pierwsze rozszerzenie makra
WORK
jest widoczne: :(FORCE() * DISTANCE())
Okno wizualizacji makra jest otwarte w obszarze FORCE, aby pokazać, że początkowo rozwija się do (FORCE()*DISTANCE()). W oknie znajdują się pojedyncze nawiasy kątowe umożliwiające przechodzenie do przodu i do tyłu pojedyncze rozszerzenie naraz. Nawiasy dwukątne w pełni rozszerzają lub w pełni cofają rozszerzenie makra.
Kliknij prawy nawias kątowy, aby rozwinąć
FORCE
makro. W oknie jest teraz wyświetlaneFORCE
rozszerzenie makra:(MASS * ACCELERATION) * DISTANCE()
.Kliknij prawy nawias kątowy, aby rozwinąć kolejny krok. W oknie jest teraz wyświetlane
FORCE
rozszerzenie makra:((10.0 * ACCELERATION) * DISTANCE())
.
Kontynuuj rozszerzanie makra, aby zobaczyć pełne rozszerzenie WORK
makra, czyli : ((10.0 * 20.0) * (5.0 * 2.0))
.
Możesz użyć nawiasów dwukątnych, aby w pełni rozwinąć makro lub odwrócić rozszerzenie do pierwszego poziomu rozszerzenia.