次の方法で共有


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. マクロにカーソルを合わせると、オプションは CopyExpand InlineVisualize Expansion、および Search Online に表示されます

    POWER マクロの展開を示すマクロ ウィンドウのスクリーンショット。

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

  3. [ Copy を選択します。

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

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

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

  1. 例のmain()内のPOWER マクロにカーソルを置いてください。
  2. マクロにカーソルを合わせると、オプションは CopyExpand InlineVisualize Expansion、および Search Online に表示されます。
  3. [ Expand Inline を選択します。 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. マクロにカーソルを合わせると、オプションは CopyExpand InlineVisualize Expansion、および Search Online に表示されます。

  3. [展開 表示を選択します。 この操作のキーボード ショートカットは、Ctrl + M の後に Ctrl + V キーを押します。

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

    マクロ展開ウィンドウのスクリーンショット。WORK マクロの展開を一度に 1 ステップずつ実行できます。

    マクロ視覚化ウィンドウが 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 マクロを表示する