#define NAME RAGHU
#define NAIVE_STR(x) #x
int main()
{
printf("%s", NAIVE_STR(NAME));
getch();
return 0;
}
NAME で定義したものが印刷されるように、コードを変更するにはどうすればよいでしょうか?
#define NAME RAGHU
#define NAIVE_STR(x) #x
int main()
{
printf("%s", NAIVE_STR(NAME));
getch();
return 0;
}
NAME で定義したものが印刷されるように、コードを変更するにはどうすればよいでしょうか?
次のようなものを使用できます
#define NAME RAGHU
#define NAIVE_STR(x) #x
#define DEF_TO_STRING(x) NAIVE_STR(x)
int main()
{
printf("%s", DEF_TO_STRING(NAME));
getch();
return 0;
}
これが作業を定義する方法です。NAIVE_STR(NAME)プリプロセッサを呼び出すと、その値が表示され#x、置換されないxため、文字列NAME が返されます。しかし、あなたが呼び出すDEF_TO_STRING(NAME)と、それは表示されず#に置き換えNAMEられRAGHU、次に呼び出さNAIVE_STR(RAGHU)れ NAIVE_STR(RAGHU)て返されますRAGHU