2016-05-11 120 views
0

我嘗試保存變量名是這樣的:正確的順序的#define宏C/C++

#define TEST someVariable 
#define makeString(x) #x 

int main(int argc, char *argv[]) 
{ 
    char TEST[] = makeString(TEST); 
    printf("%s %s\n", TEST, makeString(TEST)); 
    return 0; 
} 

輸出是:

[email protected]:/opt/preprocessor/Debug$ ./preprocessor 
TEST TEST' 

我想下一個輸出:

someVariable  someVariable 

在哪裏我錯了?

回答

0
#include <stdio.h> 


#define TEST variable 
#define makeStr(x) #x 
#define makeString(x) makeStr(x) 

int main(int argc, char *argv[]) { 
    char TEST[] = makeString(TEST); 
    printf("%s %s\n", TEST, makeString(TEST)); 
    return 0; 
} 

這有助於

+0

不錯!也許試圖包括解釋爲什麼你的解決方案的工作原理,而第一個不 – Rakete1111