C/C++ マクロの展開を視覚化する

長いマクロは読みにくい場合があります。 Visual Studio で C および C++ マクロを展開できるようになりました。 展開されたマクロの外観のコピーをクリップボードに取得し、マクロをインラインで展開に置き換え、マクロをステップ バイ ステップで展開して、展開の各段階で見た目を確認できます。 この記事では、これらすべての機能を試します。

前提条件

  • Visual Studio バージョン 17.5 以降

サンプルを作成する

  1. Visual Studio 2022 バージョン 17.5 以降を起動し、C++ コンソール アプリを作成します。

  2. 既定のコードを次のように置き換えます。

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

展開されたマクロをコピーする

次の手順を使用して、複数のプリプロセッサ ステップが関係している場合でも、マクロの拡張値を調べることができます。

  1. 例の中main()のマクロにPOWERカーソルを置いてください。

  2. マクロにカーソルを合わせると、[コピー]、[インライン展開]、[展開視覚化]、[オンライン検索] のオプションが表示されます。

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

    マクロ ウィンドウが POWER で開き、((((10.0 * 20.0) * (5.0 * 2.0)) / 2.0 に展開されることを示します。 コピー、インライン展開、ビジュアル展開、オンライン検索のオプションがウィンドウの下部に表示されます。

  3. [コピー] を選択します

  4. 行の後にコメントを POWER 作成し、[貼り付け] を選択します (Ctrl + V キーを押します)。 マクロの拡張は、マクロの近くのコメントとして表示されます // (((10.0 * 20.0)* (5.0 * 2.0)) / 2.0). 。このアクションのキーボード ショートカットは Ctrl + M、Ctrl + C です。

マクロをインラインで展開する

マクロをインラインで展開するには、次の手順に従います。マクロを展開に置き換えます。

  1. 例の中main()のマクロにPOWERカーソルを置いてください。
  2. マクロにカーソルを合わせると、[コピー]、[インライン展開]、[展開の視覚化]、[オンライン検索] のオプションが表示されます。
  3. [インライン展開] を選択 します。 マクロはPOWER()、展開された値に置き換えられます。 std::cout << "Power: " << (((10.0 * 20.0) * (5.0 * 2.0)) / 2.0) << std::endl; この操作のキーボード ショートカットは、Ctrl + M、Ctrl + I です。

マクロの展開を視覚化する

一度に 1 ステップずつマクロを展開できます。 これは、入れ子になったマクロがあり、展開の手順を確認する場合に便利です。 マクロのマクロ展開を WORK 視覚化するには、次の手順に従います。

  1. 例の中main()のマクロにWORKカーソルを置いてください。

  2. マクロにカーソルを合わせると、[コピー]、[インライン展開]、[展開視覚化]、[オンライン検索] のオプションが表示されます。

  3. [拡張の視覚化] を選択します。 この操作のキーボード ショートカットは、Ctrl + M の後に Ctrl + V キーを押します。

  4. マクロ展開ウィンドウが表示されます。 マクロの最初のWORK拡張が表示されます。 (FORCE() * DISTANCE())

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

    マクロ視覚化ウィンドウが FORCE で開き、最初に (FORCE()*DISTANCE()) に展開されていることを示します。 ウィンドウには、一度に 1 つの展開を前後に移動するための 1 つの山かっこがあります。 二重山かっこは、マクロの展開を完全に展開または完全に元に戻します。

  5. 右山かっこをクリックしてマクロを展開します FORCE 。 ウィンドウにマクロの展開がFORCE表示されます。 (MASS * ACCELERATION) * DISTANCE()

  6. 右山かっこをクリックして、別のステップを展開します。 ウィンドウにマクロの展開がFORCE表示されます。 ((10.0 * ACCELERATION) * DISTANCE())

マクロを展開し続けて、マクロの完全な展開を WORK 確認します。次のようになります ((10.0 * 20.0) * (5.0 * 2.0))。 二重山かっこを使用すると、マクロを完全に展開したり、展開を最初のレベルに戻したりできます。

関連項目

Visual Studio で UE マクロを表示する