【发布时间】:2021-01-04 21:46:46
【问题描述】:
如果 OUT 为 1,我想打印输出。所以我认为该代码。
#define OUT 1
void d_printf(char *text){
if(OUT)
printf("%s", text);
}
int main(void){
d_printf("%d\n", 5);
return 0;
}
但我的参数是 char*,我无法发送 %d, 5。我该如何解决这个问题?
【问题讨论】:
-
一种方法是更改
d_printf以接受可变长度参数,然后将它们直接传递给vprintf。 -
这能回答你的问题吗? Passing variable number of arguments around
-
另一种解决方案是分配一个字符串缓冲区,使用
snprintf在该缓冲区中创建一个具有所需输出的字符串,然后将该缓冲区传递给d_printf。
标签: c formatting