0
我想定义诸如宏 -如何检查可变参数__VA_ARGS__有效性?
#define log(lognumber,...) logreport(lognumber,__VA_ARGS__)
我想检查异常情况下__VA_ARGS__
这些参数用户当用户呼叫日志可以通过()。请提供给我的异常情况进行__VA_ARGS__
。
[更新自评:]
我的意思是,我想以这样的方式,它应该打印特定数量的,我已经定义的错误logreport写。
以一个例子一样,如果我传递
log(NOTE,"%s",str)
然后在它打印,我在这样msgid %s, msdstr %s (10223)
另一个文件分配了特定ID的情况下,但用户使用
log(NOTE,"DIRECT STRING")
它确实需要[???]作为该字符串。所以,我怎么会检查,如果用户传递一个参数这样
log(NOTE,"%s",str)
或
log(NOTE,"direct string")
这种方式logreport功能?
你说的“异常情况”是什么意思?你究竟想要达到什么目标? – cnicutar
只写代码的logreport功能使用标准的'va_start','va_arg'和'va_end'宏对变量ARGS操作做检查。至少这是我认为你所要求的答案。但是你的问题并不十分清楚:“__VA_ARGS__'的例外情况”在没有解释这意味着什么的情况下不是一个有意义的术语。 – kaylum
如果我读这正确的(我不知道我这样做),你可能有兴趣在http://stackoverflow.com/questions/2124339/c-preprocessor-va-args-number-of-arguments – Wintermute