Freigeben über


Visualisieren der C/C++-Makroerweiterung

Lange Makros können schwer zu lesen sein. Visual Studio kann jetzt C- und C++-Makros erweitern. Sie können eine Kopie der Darstellung des erweiterten Makros in der Zwischenablage abrufen, das Makro inline durch seine Erweiterung ersetzen und ein Makro schrittweise erweitern, um zu sehen, wie es in jeder Erweiterungsphase aussieht. In diesem Artikel experimentieren Sie mit all diesen Features.

Voraussetzungen

  • Visual Studio, Version 17.5 oder höher

Erstellen des Beispiels

  1. Starten Sie Visual Studio 2022, Version 17.5 oder höher, und erstellen Sie eine C++-Konsolen-App.

  2. Ersetzen Sie den Standardcode durch:

    #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;
    }
    

Kopieren eines erweiterten Makros

Sie können den erweiterten Wert eines Makros prüfen, auch wenn mehrere Präprozessorschritte beteiligt sind, indem Sie die folgenden Schritte ausführen:

  1. Platzieren Sie den Cursor im Beispiel auf main() das POWER Makro.

  2. Während Sie mit dem Mauszeiger auf das Makro zeigen, werden Optionen angezeigt, um "Kopieren", "Inline erweitern", "Erweiterung visualisieren" und "Online suchen" anzuzeigen:

    Screenshot of the macro window, showing the POWER macro expansion.

    Das Makrofenster ist in POWER geöffnet, um anzuzeigen, dass es auf (((10,0 * 20,0) * (5,0 * 2,0)) / 2,0 erweitert wird. Optionen zum Kopieren, Erweitern von Inline, visueller Erweiterung und Onlinesuche werden unten im Fenster angezeigt.

  3. Wählen Sie "Kopieren" aus.

  4. Erstellen Sie einen Kommentar nach der POWER Zeile, und wählen Sie "Einfügen" (STRG+V) aus. Die Erweiterung des Makros als Kommentar in der Nähe des Makros sieht wie folgt aus: // (((10.0 * 20.0)* (5.0 * 2.0)) / 2.0). Die Tastenkombination für diese Aktion lautet STRG+M, STRG+C.

Erweitern eines Makros inline

Führen Sie die folgenden Schritte aus, um ein Makro inline zu erweitern, das das Makro durch seine Erweiterung ersetzt:

  1. Platzieren Sie den Cursor im Beispiel auf main() das POWER Makro.
  2. Wenn Sie mit dem Mauszeiger auf das Makro zeigen, werden Optionen angezeigt, um "Kopieren", "Inline erweitern", "Erweiterung visualisieren" und "Online suchen" anzuzeigen.
  3. Wählen Sie "Inline erweitern" aus. Das POWER() Makro wird durch seinen erweiterten Wert ersetzt: std::cout << "Power: " << (((10.0 * 20.0) * (5.0 * 2.0)) / 2.0) << std::endl;. Die Tastenkombination für diese Aktion ist STRG+M, STRG+I.

Visualisieren der Makroerweiterung

Sie können ein Makro jeweils um einen Schritt erweitern. Dies ist nützlich, wenn geschachtelte Makros vorhanden sind und Sie die Erweiterung schrittweise anzeigen möchten. Führen Sie die folgenden Schritte aus, um die Makroerweiterung für das WORK Makro zu visualisieren:

  1. Platzieren Sie den Cursor im Beispiel auf main() das WORK Makro.

  2. Während Sie mit dem Mauszeiger auf das Makro zeigen, werden Optionen angezeigt, um "Kopieren", "Inline erweitern", "Erweiterung visualisieren" und "Online suchen" anzuzeigen.

  3. Wählen Sie "Erweiterung visualisieren" aus. Die Tastenkombination für diese Aktion ist STRG+M gefolgt von STRG+V.

  4. Das Makroerweiterungsfenster wird angezeigt. Die erste Erweiterung des WORK Makros ist sichtbar: : (FORCE() * DISTANCE())

    Screenshot of the macro expansion window, which allows you to step through the WORK macro expansion one step at a time.

    Das Makrovisualisierungsfenster ist in FORCE geöffnet, um anzuzeigen, dass es zunächst auf (FORCE()*DISTANCE())) erweitert wird. Es gibt einzelne winkelige Klammern im Fenster, um jeweils eine einzelne Erweiterung vorwärts und rückwärts zu bewegen. Die doppeltwinkligen Klammern erweitern oder vollständig rückgängigmachen die Makroerweiterung.

  5. Klicken Sie auf die rechte eckige Klammer, um das FORCE Makro zu erweitern. Das Fenster zeigt nun die FORCE Makroerweiterung: (MASS * ACCELERATION) * DISTANCE().

  6. Klicken Sie auf die rechte eckige Klammer, um einen weiteren Schritt zu erweitern. Das Fenster zeigt nun die FORCE Makroerweiterung: ((10.0 * ACCELERATION) * DISTANCE()).

Erweitern Sie das Makro weiter, um die vollständige Erweiterung des WORK Makros anzuzeigen. Dies ist: ((10.0 * 20.0) * (5.0 * 2.0)) Sie können die doppeltwinkligen Klammern verwenden, um das Makro vollständig zu erweitern oder die Erweiterung auf die erste Erweiterungsebene umzukehren.

Weitere Informationen

Anzeigen von UE-Makros in Visual Studio