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