#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