define函数-如何处理多参数?

falcoperegrinusman 2013-11-25 03:41:31
存在两个多参函数,如何通过预定义的方式进行替换?

fun1(args, ...){}
fun2(args, ...){}

#ifdef DEBUG
#define fun1(x) fun2(X,x)
#define fun1(x,y) fun2(X,x,y)
...
#endif

目的是在调试版是采用不同的处理方式


...全文
400 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ggglivw 2013-11-25
  • 打赏
  • 举报
回复
C++的 var开头的一个啥可以支持不定的参数,楼上的那种如果是2参数转3参数咋个办,编译不过的
  • 打赏
  • 举报
回复
#define fun1 fun2 不就行了么
ggglivw 2013-11-25
  • 打赏
  • 举报
回复
你还可以做成自己解析字符串的形式,参照sprintf, "%d%f"后面可以自己跟一个自定义结束
ggglivw 2013-11-25
  • 打赏
  • 举报
回复
这个要看你的3个参数是如何来的,如果是写死的,可以用宏定义,如果是动态的,要麻烦些,比如根据啥接口计算的,网络协议传的.== #ifdef _a #define _XX_(A,B) fun1(A) #else #define _XX_(A,B) fun1(A,B) #endif
falcoperegrinusman 2013-11-25
  • 打赏
  • 举报
回复
引用 1 楼 ggglivw 的回复:
#ifdef _a #define fun1(x) fun2(X,x) #else #define fun1(x,y) fun2(X,x,y) #endif 调用处也加上条件编译
每个地方都加条件么? 这样就不符合预定义的初衷了?
ggglivw 2013-11-25
  • 打赏
  • 举报
回复
#ifdef _a #define fun1(x) fun2(X,x) #else #define fun1(x,y) fun2(X,x,y) #endif 调用处也加上条件编译

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧