私は、あちこちで定義され、未定義になり、再定義されたマクロがたくさんあるコードベースで作業しています。驚くべきことに、コンパイラはまだそれらを噛むことができるので、この種のマクロ展開結果を抽出する方法はありますか?
MY_MACRO -> myFolder/myFile.cpp #266 float myFunc()
MSVC と GCC の両方でこれを取得する方法はありますか?
私は、あちこちで定義され、未定義になり、再定義されたマクロがたくさんあるコードベースで作業しています。驚くべきことに、コンパイラはまだそれらを噛むことができるので、この種のマクロ展開結果を抽出する方法はありますか?
MY_MACRO -> myFolder/myFile.cpp #266 float myFunc()
MSVC と GCC の両方でこれを取得する方法はありますか?
gcc -E
GNU C/C++に使用できます
Visual Studio の場合CL /EP /C myfile.cpp
、コマンド プロンプトから使用できます。
MSVC の場合、/P スイッチを使用してコンパイルします ([プロジェクト] > [プロパティ] > [C/C++] > [プリプロセッサ] > [プリプロセスされたファイルを生成])。これにより、すべての前処理ディレクティブが解決された後に、コンパイラーが実際に認識するテキストを含むファイル (.i 拡張子付き) が生成されます。
Unix-y プラットフォームでは、ツールを使用して同じことを達成できると思いcpp
ます。
GDB では、マクロの結果を確認できます ( http://sourceware.org/gdb/onlinedocs/gdb/Macros.htmlを参照)。しかし、あなたが探しているものを正確に与えるものは何も知りません。お役に立てれば