0

私は、あちこちで定義され、未定義になり、再定義されたマクロがたくさんあるコードベースで作業しています。驚くべきことに、コンパイラはまだそれらを噛むことができるので、この種のマクロ展開結果を抽出する方法はありますか?

MY_MACRO -> myFolder/myFile.cpp #266 float myFunc()

MSVC と GCC の両方でこれを取得する方法はありますか?

4

3 に答える 3

2

gcc -EGNU C/C++に使用できます

Visual Studio の場合CL /EP /C myfile.cpp、コマンド プロンプトから使用できます。

于 2013-07-16T19:52:13.173 に答える
1

MSVC の場合、/P スイッチを使用してコンパイルします ([プロジェクト] > [プロパティ] > [C/C++] > [プリプロセッサ] > [プリプロセスされたファイルを生成])。これにより、すべての前処理ディレクティブが解決された後に、コンパイラーが実際に認識するテキストを含むファイル (.i 拡張子付き) が生成されます。

Unix-y プラットフォームでは、ツールを使用して同じことを達成できると思いcppます。

于 2013-07-16T19:50:12.823 に答える
0

GDB では、マクロの結果を確認できます ( http://sourceware.org/gdb/onlinedocs/gdb/Macros.htmlを参照)。しかし、あなたが探しているものを正確に与えるものは何も知りません。お役に立てれば

于 2013-07-16T19:18:24.597 に答える