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