マクロが定義されているかどうか、および定義されている場合はどのような値であるかを確認するにはどうすればよいですか?gdbを試してみましたが、マクロはプリコンパイル時にのみ置き換えられるため、GDBにマクロが表示されません。
GCCコンパイラで、オブジェクトファイル(* .o)を作成する前にコンパイラによって作成されたプリコンパイル済みファイルを表示する方法はありますか?
-E
gccのフラグを使用して、前処理された出力を取得できます。この出力には、名前の代わりに展開されたマクロが含まれます。詳細については、こちらをご覧ください。
C ソース ファイル内で、マクロを使用して#ifdef
、マクロが定義されているかどうかを確認できます。
#include <stdio.h>
#ifdef MY_MACRO
char msg[] = "My macro is defined";
#else
char msg[] = "My macro is NOT defined";
#endif
int main(int argc, char **argv) {
printf("%s\n", msg);
return 0;
}