On Fri, Aug 14, 2015 at 10:52:06PM +0800, Xiao Guangrong wrote: > +#ifdef NVDIMM_DEBUG > +#define nvdebug(fmt, ...) fprintf(stderr, "nvdimm: " fmt, ## __VA_ARGS__) > +#else > +#define nvdebug(...) > +#endif
The following allows the compiler to check format strings and syntax check the argument expressions: #define NVDIMM_DEBUG 0 /* set to 1 for debug output */ #define nvdebug(fmt, ...) \ if (NVDIMM_DEBUG) { \ fprintf(stderr, "nvdimm: " fmt, ## __VA_ARGS__); \ } This approach avoids bitrot (e.g. debug format string arguments have become outdated).