C语言中有-verbose或--debug选项的程序,它们实际上是如何实现的?不使用第三方库.
我的目标不是一直这样做:
if(debug) printf("Debug msg\n");
printf("Info msg\n");
Run Code Online (Sandbox Code Playgroud)
我见过的最常见的是打印到stderr.
#ifdef DEBUG
#define DEBUG_MESSAGE(fmt, ...) fprintf(stderr, fmt ## "\n", __VA_ARGS__)
#else
#define DEBUG_MESSAGE(fmt, ...)
#endif
Run Code Online (Sandbox Code Playgroud)
别处...
DEBUG_MESSAGE("VERBOSE: %s", "This is a verbose message.");
Run Code Online (Sandbox Code Playgroud)
编辑
在运行时可以运行的东西:
#define DEBUG_MESSAGE(fmt, ...)\
do{\
if(g_debugEnabled) fprintf(stderr, fmt ## "\n", __VA_ARGS__);\
}while(0)
Run Code Online (Sandbox Code Playgroud)
哪个可以类似地使用.
最后的编辑
更改为使用任意格式字符串__VA_ARGS__.
| 归档时间: |
|
| 查看次数: |
121 次 |
| 最近记录: |