如何检查可变参数__VA_ARGS__的有效性?

时间:2015-05-14 12:16:01

标签: c variadic-macros

我想定义一个像 -

这样的宏
#define  log(lognumber,...)  logreport(lognumber,__VA_ARGS__) 

我想检查__VA_ARGS__用户在调用log()时可以传递的参数的异常情况。请为__VA_ARGS__提供例外情况。

[评论更新:]

我的意思是我想以这样的方式编写logreport,它应该将特定的数字打印到我已经定义的错误中。

举个例子,如果我正在传递

log(NOTE,"%s",str) 

然后在那种情况下,它打印我在另一个文件中分配的特定ID,如msgid %s, msdstr %s (10223),但用户使用

log(NOTE,"DIRECT STRING") 

确实需要[???]表示该字符串。那么,如果用户以这种方式传递参数,我将如何检查

log(NOTE,"%s",str) 

log(NOTE,"direct string") 

这种方式在logreport函数中?

1 个答案:

答案 0 :(得分:0)

  

那么如果用户传递参数

,我该怎么检查呢?

目前唯一的方法是为"%s"之类的转换说明符解析出第二个参数。