我想在前面说清楚:我知道这个技巧是如何工作的,我想要的是一个明确的解释与其他人分享的链接.
C宏问题的答案之一谈到了"X宏"或"尚未定义的宏"的习语.这包括定义如下内容:
#define MAGIC_LIST \
X(name_1, default_1) \
X(name_2, default_2) \
...
Run Code Online (Sandbox Code Playgroud)
然后创建一个具有命名索引的值数组:
typedef enum {
#define X(name, val) name,
MAGIC_LIST
#undef X
} NamedDefaults;
Run Code Online (Sandbox Code Playgroud)
您可以使用不同的#definefor 重复该过程X()来创建值数组,也可以调试字符串等.
我想要一个关于如何工作的明确解释的链接,与那些熟悉C的人交往.我不知道每个人通常称之为这种模式,所以我到目前为止尝试在网上搜索它已经失败了.
(如果对SO有这样的解释,那就没事了......)