C/C++ マクロの展開を視覚化する
長いマクロは読みにくい場合があります。 Visual Studio で C および C++ マクロを展開できるようになりました。 展開されたマクロの外観のコピーをクリップボードに取得し、マクロをインラインで展開に置き換え、マクロをステップ バイ ステップで展開して、展開の各段階で見た目を確認できます。 この記事では、これらすべての機能を試します。
前提条件
- Visual Studio バージョン 17.5 以降
サンプルを作成する
Visual Studio 2022 バージョン 17.5 以降を起動し、C++ コンソール アプリを作成します。
既定のコードを次のように置き換えます。
#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; }
展開されたマクロをコピーする
次の手順を使用して、複数のプリプロセッサ ステップが関係している場合でも、マクロの拡張値を調べることができます。
例の
main()
内のPOWER
マクロにカーソルを置いてください。マクロにカーソルを合わせると、オプションは Copy、Expand Inline、Visualize Expansion、および Search Online に表示されます
マクロ ウィンドウが POWER で開き、((((10.0 * 20.0) * (5.0 * 2.0)) / 2.0 に展開されることを示します。 コピー、インライン展開、ビジュアル展開、オンライン検索のオプションがウィンドウの下部に表示されます。
[ Copy を選択します。
POWER
行の後にコメントを作成し、[貼り付け] を選択します (Ctrl + V キーを押します)。 マクロの展開は、マクロの近くのコメントとして、次のようになります// (((10.0 * 20.0)* (5.0 * 2.0)) / 2.0).
このアクションのキーボード ショートカットは Ctrl + M、Ctrl + C です。
マクロをインラインで展開する
マクロをインラインで展開するには、次の手順に従います。マクロを展開に置き換えます。
- 例の
main()
内のPOWER
マクロにカーソルを置いてください。 - マクロにカーソルを合わせると、オプションは Copy、 Expand Inline、 Visualize Expansion、および Search Online に表示されます。
- [ Expand Inline を選択します。
POWER()
マクロは、展開された値 (std::cout << "Power: " << (((10.0 * 20.0) * (5.0 * 2.0)) / 2.0) << std::endl;
) に置き換えられます。 この操作のキーボード ショートカットは、Ctrl + M、Ctrl + I です。
マクロの展開を視覚化する
一度に 1 ステップずつマクロを展開できます。 これは、入れ子になったマクロがあり、展開の手順を確認する場合に便利です。 WORK
マクロのマクロ展開を視覚化するには、次の手順に従います。
例の
main()
内のWORK
マクロにカーソルを置いてください。マクロにカーソルを合わせると、オプションは Copy、 Expand Inline、 Visualize Expansion、および Search Online に表示されます。
[展開 表示を選択します。 この操作のキーボード ショートカットは、Ctrl + M の後に Ctrl + V キーを押します。
マクロ展開ウィンドウが表示されます。
WORK
マクロの最初の拡張が表示されます:(FORCE() * DISTANCE())
:マクロ視覚化ウィンドウが FORCE で開き、最初に (FORCE()*DISTANCE()) に展開されていることを示します。 ウィンドウには、一度に 1 つの展開を前後に移動するための 1 つの山かっこがあります。 二重山かっこは、マクロの展開を完全に展開または完全に元に戻します。
右山かっこをクリックして、
FORCE
マクロを展開します。 ウィンドウに、FORCE
マクロの展開 ((MASS * ACCELERATION) * DISTANCE()
) が表示されます。右山かっこをクリックして、別のステップを展開します。 ウィンドウに、
FORCE
マクロの展開 (((10.0 * ACCELERATION) * DISTANCE())
) が表示されます。
マクロを展開し続けて、 WORK
マクロの完全な展開 ( ((10.0 * 20.0) * (5.0 * 2.0))
) を確認します。
二重山かっこを使用すると、マクロを完全に展開したり、展開を最初のレベルに戻したりできます。