[英]C: print value of macro
我正在使用C舊版代碼。 在代碼中,使用了一個宏:
static int _main(A_MACRO *input_obj)
{
....
我不確定哪種數據類型A_MACRO將input_obj聲明為。 如何將這些信息打印到屏幕上?
我試圖這樣做:
static int _main(A_MACRO *input_obj)
{
sprintf("%s is the macro", A_MACRO);
....
但這導致此錯誤消息:
error: expected primary-expression before ‘)’ token
您可以創建一個“字符串化”宏,將定義轉換為如下所示的字符串:
#define STRINGIZE_(x) #x
#define STRINGIZE(x) STRINGIZE_(x)
然后,您只需使用宏名稱“調用”它即可:
printf("A_MACRO is defined as %s\n", STRINGIZE(A_MACRO));
或者,根據您使用的編譯器,它可能具有顯示宏定義的選項。 例如,對於gcc
,可以使用-dM
選項:
gcc -dM file.c | grep A_MACRO
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.