C语言扩展:以X宏作为参数
示例
通过将“X”宏的名称作为主宏的参数,可以稍微概括一下X宏方法。这具有帮助避免宏名称冲突以及允许将通用宏用作“X”宏的优点。
与X宏一样,主宏代表其重要性特定于该宏的项目列表。在此变体中,可以这样定义一个宏:
/* declare list of items */
#define ITEM_LIST(X) \
X(item1) \
X(item2) \
X(item3) \
/* end of list */然后,可能会生成代码以打印项目名称,如下所示:
/* define macro to apply */ #define PRINTSTRING(value) printf( #value "\n"); /* apply macro to the list of items */ ITEM_LIST(PRINTSTRING)
扩展为以下代码:
printf( "item1" "\n"); printf( "item2" "\n"); printf( "item3" "\n");
与标准X宏相反,在标准X宏中,“X”名称是主宏的内置特征,采用这种样式,随后取消定义用作参数的宏可能是不必要的,甚至是不受欢迎的(PRINTSTRING在本示例中)。
热门推荐
10 祝女儿简短祝福语大全
11 大学新年祝福语简短创意
12 元旦适合的祝福语简短
13 朋友出远门祝福语简短
14 初六简短的祝福语
15 祝男孩生日祝福语简短
16 同事调离的祝福语简短
17 拜年红包的祝福语简短
18 妈妈生日祝福语简短励志