首页 > 解决方案 > 如何定义一个接受任意数量参数并扩展为仅给出偶数参数的宏?

问题描述

是否可以定义一个可变参数 C 宏来扩展以提供所有其他参数?换句话说,

EVEN(A,a,B,b)

扩展到

a, b

EVEN(A,a,B,b,C,c)

扩展到

a, b, c

等等

我可以定义一个接受预定数量的参数

#define EVEN(a1,a2,a3,a4,a5,a6) a2, a4, a6

但是你如何定义一个接受任意数量参数的宏呢?

#define EVEN(args...)        ???

标签: cmacrosvariadic

解决方案


推荐阅读