我看过DEBUGLOG(x,...)
语法。它支持DEBUGLOG(x,...)
或DEBUGLOG(x...)
。
如果我们更改DEBUGLOG(x,..)
之类的点,则会出错。谁能解释一下呢?
提前致谢..........
答案 0 :(得分:3)
这是一个“可变”宏,意味着它需要多个参数。它是像printf
这样的C变量函数的宏等价物。 ...
表示“此处的任何其他参数也可以”。
http://gcc.gnu.org/onlinedocs/cpp/Variadic-Macros.html
调用宏时,全部 在其后的参数列表中的标记 最后命名的参数(这个宏有 没有),包括任何逗号,成为 变量参数。这个顺序 令牌替换标识符 宏体中出现的 VA_ARGS 。
(我不确定为什么“x ...”在没有逗号的情况下起作用。这不是你经常看到的形式。)