为了账号安全,请及时绑定邮箱和手机立即绑定

如何生成变量宏(变量数)

如何生成变量宏(变量数)

C C++
月关宝盒 2019-07-10 10:47:58
如何生成变量宏(变量数)我想用C写一个宏,它接受任意数量的参数,而不是特定的数字。例子:#define macro( X )  something_complicated( whatever( X ) )哪里X是任意数量的参数我需要这个是因为whatever是重载的,可以用2或4个参数调用。我尝试过两次定义宏,但是第二个定义覆盖了第一个!我正在使用的编译器是g+(更确切地说,是mingw)。
查看完整描述

3 回答

?
红颜莎娜

TA贡献1842条经验 获得超12个赞

C99方式,也支持VC+编译器。

#define FOO(fmt, ...) printf(fmt, ##__VA_ARGS__)


查看完整回答
反对 回复 2019-07-10
?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

__VA_ARGS__是做这件事的标准方法。如果没有必要,不要使用特定于编译器的黑客。

我真的很生气,因为我不能对原来的帖子发表评论。无论如何,C+不是C的超集,用C+编译器编译C代码真的很愚蠢。不要做唐尼不做的事。


查看完整回答
反对 回复 2019-07-10
?
holdtom

TA贡献1805条经验 获得超10个赞

我不认为那是可能的,你可以用双生父母来假装.只要你不需要单独的争论。

#define macro(ARGS) some_complicated (whatever ARGS)// ...macro((a,b,c))macro((d,e))


查看完整回答
反对 回复 2019-07-10
  • 3 回答
  • 0 关注
  • 702 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信