2016-05-11 98 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