【发布时间】:2011-01-20 11:55:29
【问题描述】:
是否可以在可变参数宏中的变量参数之前添加默认参数? 例如,我有类似的宏版本
#define MACRO(arg1, ...) func(arg1, ##__VA_ARGS__)
我想在变量参数之前在宏中添加另外 2 个默认参数,这样它就不会影响以前的版本。喜欢:
#define MACRO(arg1, arg2 = "", arg3 = "", ...) func(arg1, arg2, arg3, ##__VA_ARGS__)
任何帮助将不胜感激。
【问题讨论】:
-
C 不支持默认参数。你是说 C++ 吗?
-
不确定在理解中,
#define MACRO(arg1, ...) func(arg1, "", "", ##__VA_ARGS__)
是否有效? -
是的。忘了提。它适用于 C++。谢谢
-
确实,func() 中的参数 arg1 和 arg2 将根据源内部 MACRO() 中这些参数的值来决定。可以为空以支持向后兼容。
标签: c++ c-preprocessor variadic-functions variadic-macros