Accessing the value of a Preprocessor Macro definition
If I add a macro "FOO=bar" under GCC_PREPROCESSOR_DEFINITIONS (or Preprocessor Macros if you use XCode"), what would be the best way to access the value of "FOO"? Currently, I use the clumsy: #define MACRO_NAME(f) #f #define MACRO_VALUE(f) MACRO_NAME(f) #ifdef FOO NSLog(@"%s", MACRO_VALUE(FOO)); #else NSLog(@"undefined"); #endif This will output "bar" Surely, there must be a better/cleaner way? What you are doing is the way to stringize (or stringify ) macro values. The indirection is unavoidable. This is even mentioned in the GCC preprocessor manual section that Rob linked to. NSLog(@"%s",