Acessando o valor de uma definição de Macro de Pré-processador

Se eu adicionar uma macro "FOO = bar" em GCC_PREPROCESSOR_DEFINITIONS (ou macros de pré-processador, se você usar o XCode "), qual seria a melhor maneira de acessar o valor de" FOO "?

Atualmente, eu uso o desajeitado:

    #define MACRO_NAME(f) #f
    #define MACRO_VALUE(f)  MACRO_NAME(f)

    #ifdef FOO
        NSLog(@"%s", MACRO_VALUE(FOO));
    #else
        NSLog(@"undefined");
    #endif

Isso produzirá "bar"

Certamente, deve haver uma maneira melhor / mais limpa?

questionAnswers(2)

yourAnswerToTheQuestion