【发布时间】:2019-09-18 01:34:53
【问题描述】:
如果某些条件为真,我只想 printf。我知道 printf 是一个可变参数函数,但遗憾的是我似乎在这里找不到任何解释我可以包装它的线程。
基本上在我要写的代码中:
printf(" [text and format] ", ... args ...);
我想写一些类似的东西
my_custom_printf(" [text and format] ", ... args ...);
然后是这样实现的:
int my_custom_printf(const char* text_and_format, ... args ...)
{
if(some_condition)
{
printf(text_and_format, ... args...);
}
}
条件的第一个版本将独立于 args(它将位于某个全局变量上),但它可能在未来成为需要的条件一个参数。
无论如何,现在我只需要原型中... args ... 的语法和my_custom_printf 的正文。
我正在使用 GCC,但我不知道哪个 C 标准 - 但我们可以尝试一下。
【问题讨论】:
-
来自
<stdarg.h>的v*printf系列函数就是这样做的,see here。 -
不知道
vprintf- 但现在我知道了,我可以做我想做的事。谢谢!
标签: c printf customization variadic-functions