【发布时间】:2018-05-20 08:33:09
【问题描述】:
我有两个函数 foo1(a,b) & foo2(a,b,c) 和一个宏
#define add(a,b) foo(a,b)
我需要重新定义宏来完成,
1.如果用2个参数调用add(),则调用foo1
- 如果使用 3 个参数调用 add(),则调用 foo2
我是选项 VA_ARGS 的新手。我该怎么做呢
【问题讨论】:
-
为什么不能将
add重新编码为接受变量参数列表的函数? -
-
sane 解决方案:一个函数
type add (type a, type b, type c);,其中c是可选的,可以设置为NULL 或类似的值。可变参数宏通常是通往疯狂的道路。
标签: c variables macros arguments