调试期间,代码中可能会加很多assert,但是有时一些不那么严重的错误又不希望死机,只想让他打印一下错误。我定义了一个这样的宏来实现:
#define warning(expr, string) (void)(!!(expr) || (log_print(string), 0))
extern void log_print(char*, ...);
或者设计成带参数的
C99的变参数宏形式:
#define warning(expr, string, ...) (void)(!!(expr) || (log_print(string, ##__VA_ARGS__), 0))
GNUC支持以下形式:
#define warning(expr, string, args...) (void)(!!(expr) || (log_print(string, ##args), 0))

博客提到在代码调试期间,可能会添加很多assert。对于不那么严重的错误,不希望死机,只想打印错误。为此定义了宏来实现,还提及设计成带参数的,以及C99的变参数宏形式和GNUC支持的形式。
3013

被折叠的 条评论
为什么被折叠?



