几个C/C++语言log宏定义 |
发布: 2008-05-29 20:53 |
下面的定义使用了C中强大的宏功能及不定参数功能。 对于调试C程序非常有用,输出格式如下: Debug: fun name at 'file name' on line 'no'. log 信息xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx [code type="c"] /*******************/ #define log_printf(ls, fn, ln, yorn, ... ) do { \ char log[2560] = {0}; \ snprintf(log, sizeof(log), __VA_ARGS__ ); \ fn != NULL ? fprintf(stdout, "%s %s at %s on line %d.\n %s\n", ls, __FUNCTION__, fn , ln, log) : fprintf(stdout, "%s %s\n %s\n", ls, __FUNCTION__, log) ; \ yorn == 'y' ? (1==1) : (1==1) ; \ }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] |
原文: http://qtchina.tk/?q=node/156 |
Powered by zexport
|