可能重复:
如何制作可变参数宏(可变数量的参数)
我想在基本 C 中有一个日志宏,它接受类似于printf
并记录它们的参数。但是,我希望它的记录方式(日志级别、文件 vsstderr
等)在编译时设置,而不是运行时设置;如果我将参数设置为忽略低级日志记录,则该方法什么都不做,并希望在代码之外进行优化。
到目前为止,我有一个宏,它是根据编译时定义的参数定义的。如果定义了参数,则记录转到我的日志方法(记录到文件),否则转到stderr
. 但是,我只能将一个字符串传递给这个宏。log 方法能够接受不定数量的参数并使用printf
语法工作。我想知道是否有办法设置我的宏,以便它将无限数量的参数传递给日志文件?
而且由于我怀疑答案是我做不到,还有另一种方法可以在基本 C 中实现我想要的(我不能使用 C++ 或 boost)。