簡體   English   中英

C:宏的打印值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM