drswinghead

主站网址

导航

几个C/C++语言log宏定义

下面的定义使用了C中强大的宏功能及不定参数功能。 对于调试C程序非常有用,输出格式如下: Debug: fun name at 'file name' on line 'no'. log 信息xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx [code type="c"] /*******************/ #define log_printf(ls, fn, ln, yorn, ... ) do { \r char log[2560] = {0}; \r snprintf(log, sizeof(log), __VA_ARGS__ ); \r fn != NULL ? fprintf(stdout, "%s %s at %s on line %d. %s ", ls, __FUNCTION__, fn , ln, log) : fprintf(stdout, "%s %s %s ", ls, __FUNCTION__, log) ; \r yorn == 'y' ? (1==1) : (1==1) ; \r }while(0); #define log_error( ... ) log_printf("Error:", __FILE__, __LINE__, 'n', __VA_ARGS__ ) #ifndef NDEBUG #define log_debug( ... ) log_printf("Debug:", __FILE__, __LINE__, 'n', __VA_ARGS__ ) #else #define log_debug( ... ) do {} while(0); #endif #define log_fetal( ... ) log_printf("Fetal:", __FILE__, __LINE__, 'y', __VA_ARGS__ ) #define qlog( ... ) log_printf("Info:", (char*)0, 0, 'n', __VA_ARGS__ ) /************* log end ********/ [/code]

posted on 2010-06-16 18:21  drswinghead  阅读(787)  评论(0编辑  收藏  举报