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
カーソルを置いてください。マクロにカーソルを合わせると、[コピー]、[インライン展開]、[展開の視覚化]、[オンライン検索] のオプションが表示されます。
マクロ ウィンドウが POWER で開き、((((10.0 * 20.0) * (5.0 * 2.0)) / 2.0 に展開されることを示します。 コピー、インライン展開、ビジュアル展開、オンライン検索のオプションがウィンドウの下部に表示されます。
[コピー] を選択します。
行の後にコメントを
POWER
作成し、[貼り付け] を選択します (Ctrl + V キーを押します)。 マクロの拡張は、マクロの近くのコメントとして表示されます// (((10.0 * 20.0)* (5.0 * 2.0)) / 2.0).
。このアクションのキーボード ショートカットは Ctrl + M、Ctrl + C です。
マクロをインラインで展開する
マクロをインラインで展開するには、次の手順に従います。マクロを展開に置き換えます。
- 例の中
main()
のマクロにPOWER
カーソルを置いてください。 - マクロにカーソルを合わせると、[コピー]、[インライン展開]、[展開の視覚化]、[オンライン検索] のオプションが表示されます。
- [インライン展開] を選択 します。 マクロは
POWER()
、展開された値に置き換えられます。std::cout << "Power: " << (((10.0 * 20.0) * (5.0 * 2.0)) / 2.0) << std::endl;
この操作のキーボード ショートカットは、Ctrl + M、Ctrl + I です。
マクロの展開を視覚化する
一度に 1 ステップずつマクロを展開できます。 これは、入れ子になったマクロがあり、展開の手順を確認する場合に便利です。 マクロのマクロ展開を WORK
視覚化するには、次の手順に従います。
例の中
main()
のマクロにWORK
カーソルを置いてください。マクロにカーソルを合わせると、[コピー]、[インライン展開]、[展開の視覚化]、[オンライン検索] のオプションが表示されます。
[拡張の視覚化] を選択します。 この操作のキーボード ショートカットは、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))
。
二重山かっこを使用すると、マクロを完全に展開したり、展開を最初のレベルに戻したりできます。