0
#define NAME RAGHU
#define NAIVE_STR(x) #x
int main()
{
printf("%s", NAIVE_STR(NAME)); 
getch();
return 0;
}    

NAME で定義したものが印刷されるように、コードを変更するにはどうすればよいでしょうか?

4

1 に答える 1

1

次のようなものを使用できます

#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

于 2013-11-06T11:16:55.643 に答える