下面的定义使用了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]
转载于:https://www.cnblogs.com/qtchina/archive/2010/06/16/1759148.html