zoukankan      html  css  js  c++  java
  • 应用_Printf Dbug 终极奥义


    #include<stdio.h>
    
    #define BUG_POWER
    #ifdef BUG_POWER
    
    #define ENTRY   5
    #define DEBUG   4
    #define INFO    3
    #define WARN    2
    #define ERROR   1
    #define PRINT_LEVEL ENTRY
    
    #define pri(Level, ...)                                   
            do{                                                
                if(Level <=PRINT_LEVEL){                    
                    printf( "["#Level"] " __VA_ARGS__ );    
                }                                            
            }while(0);
            
    #define pri_err(...)    pri(ERROR,##__VA_ARGS__)
    #define pri_warn(...)   pri(WARN, ##__VA_ARGS__)
    #define pri_info(...)   pri(INFO, ##__VA_ARGS__)
    #define pri_bug(...)    pri(DEBUG,##__VA_ARGS__)
    #define pri_entry(inout) pri(ENTRY, "%s() %s", __func__, #inout)        
    
    #else
    
    #define pri_err(...)      
    #define pri_warn(...)     
    #define pri_info(...)     
    #define pri_bug(...)      
    #define pri_entry(inout)  
    
    #endif
    
    
    int main(void)
    {
        pri_bug ("FILE:%s FUN:%s LINE:%d DATE:%s TIME:%s  text ok!
    ", __FILE__,  __FUNCTION__, __LINE__, __DATE__, __TIME__);
        pri_info("FILE:%s FUN:%s LINE:%d DATE:%s TIME:%s  text ok!
    ", __FILE__,  __FUNCTION__, __LINE__, __DATE__, __TIME__);
        pri_warn("FILE:%s FUN:%s LINE:%d DATE:%s TIME:%s  text ok!
    ", __FILE__,  __FUNCTION__, __LINE__, __DATE__, __TIME__);
        pri_err ("FILE:%s FUN:%s LINE:%d DATE:%s TIME:%s  text ok!
    ", __FILE__,  __FUNCTION__, __LINE__, __DATE__, __TIME__);    
    
        return 0;
    }

    Stay hungry, stay foolish 待续。。。
  • 相关阅读:
    mysql 数据库引擎
    dubbo 微服务
    spring 属性文件加载接口---PropertySourceLoader
    Shiro架构
    HTTP状态码
    Shiro 修改权限,刷新权限
    Consul 架构(译)
    Java EE平台介绍(译)
    Java SPI机制
    Otb_000_ElementUI 的 Drawer组件无法上下滚动没有滚动条
  • 原文地址:https://www.cnblogs.com/panda-w/p/14728185.html
Copyright © 2011-2022 走看看