检查VA_ARGS是否有某些值

时间:2015-06-04 18:33:54

标签: c gcc

我正在编写一段代码,我必须根据传递给函数的参数数量做出决定。我正以简化的方式处理我所面临的情况。

#define MYTRACE
#define MYTRACE1

#define TRACE(_var1_, _var2_, ...) \
MYTRACE(_var1_, _var2_, ##__VA_ARGS__)

int main(void) {
// your code goes here
int a=1, b=2, c=3, d=4;
TRACE(a,b);
TRACE(a,b,c);
TRACE(a,b,c,d); // TRACE can accept any no of arguments. Min 2
return 0;
}

在这里,如果TRACE只有只有2个参数,那么我必须调用MYTRACE1。在所有其他情况下,我必须致电MYTRACE。我试图在##__VA_ARGS__的帮助下实现它。你能帮忙吗?

由于

CHID

0 个答案:

没有答案