访问预处理器宏定义的值 [英] Accessing the value of a Preprocessor Macro definition
本文介绍了访问预处理器宏定义的值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如果我在GCC_PREPROCESSOR_DEFINITIONS下添加宏"FOO = bar"(如果使用XCode,则添加预处理器宏),那么访问"FOO"值的最佳方法是什么?
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"?
目前,我很笨拙:
#define MACRO_NAME(f) #f
#define MACRO_VALUE(f) MACRO_NAME(f)
#ifdef FOO
NSLog(@"%s", MACRO_VALUE(FOO));
#else
NSLog(@"undefined");
#endif
这将输出栏"
当然,必须有更好/更清洁的方法吗?
Surely, there must be a better/cleaner way?
推荐答案
您正在做的是串化(或 stringify 的方式) )宏值.间接访问是不可避免的.
What you are doing is the way to stringize (or stringify) macro values. The indirection is unavoidable.
在GCC预处理程序
这篇关于访问预处理器宏定义的值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文