有人知道如何使用详细选项(选择是否打印消息的选项)以一种很好的方式用 C 语言编写程序吗?
我的意思是,不要为代码中的每个 printf 编写一个 if(详细)。
有没有更优雅的解决方案?
最佳答案
只需使用(可变的)宏/可变参数函数在调用 vfprintf 之类的东西之前测试标志。
/* Crude example. */
void my_log(char *format, ...)
{
va_list args;
if (!ok_to_log)
return;
va_start(args, format);
vprintf(format, args);
va_end(args);
}
按要求编辑
稍微修改一下怎么样gnu example :
#define eprintf(format, ...) do { \
if (ok_to_print) \
fprintf(stderr, format, ##__VA_ARGS__); \
} while(0)
关于c - 在 C 中使用详细选项进行编程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10017272/