2016-05-11 15 views
0

Ich versuche, wie diese Variable Namen speichern:richtige Reihenfolge #define Makro in 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; 
} 

Ausgang ist:

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

ich als nächstes ausgegeben werden soll:

someVariable  someVariable 

Wo Ich habe mich geirrt?

Antwort

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; 
} 

das hilft

+0

Nice! Vielleicht versuchen Sie, eine Erklärung dafür zu geben, warum Ihre Lösung funktioniert, während die erste nicht funktioniert – Rakete1111