zoukankan      html  css  js  c++  java
  • Linux 利用宏和printf定义特殊的输出(转载)

    在linux下,可以使用一些宏,加上自定义格式输出,让输出更易于调试:

    排版出来可能有些乱,注意do{ }while(0);是在一行里就可以了。

    1.  
      #include <stdio.h>
    2.  
      #include <stdlib.h>
    3.  
       
    4.  
      #define DEBUG1( fmt, arg ... )
    5.  
      do{printf("[DEBUG] " fmt , ##arg ); }while(0);
    6.  
      #define DEBUG2( fmt, arg ... )
    7.  
      do{printf("[%s: %s: line %d]" fmt ,
    8.  
      __FILE__, __FUNCTION__, __LINE__, ##arg ); }while(0);
    9.  
       
    10.  
      #define PrintColor1( fmt, arg ... )
    11.  
      do{printf("33[30m""[%s: %s: line %d]" fmt"33[0m" ,
    12.  
      __FILE__, __FUNCTION__, __LINE__, ##arg ); }while(0);
    13.  
       
    14.  
      #define PrintColor2( fmt, arg ... )
    15.  
      do{printf("33[31m""[%s: %s: line %d]" fmt"33[0m" ,
    16.  
      __FILE__, __FUNCTION__, __LINE__, ##arg ); }while(0);
    17.  
       
    18.  
      #define PrintColor3( fmt, arg ... )
    19.  
      do{printf("33[32m""[%s: %s: line %d]" fmt"33[0m" ,
    20.  
      __FILE__, __FUNCTION__, __LINE__, ##arg ); }while(0);
    21.  
       
    22.  
      #define PrintColor4( fmt, arg ... )
    23.  
      do{printf("33[33m""[%s: %s: line %d]" fmt"33[0m" ,
    24.  
      __FILE__, __FUNCTION__, __LINE__, ##arg ); }while(0);
    25.  
       
    26.  
      #define PrintColor5( fmt, arg ... )
    27.  
      do{printf("33[34m""[%s: %s: line %d]" fmt"33[0m" ,
    28.  
      __FILE__, __FUNCTION__, __LINE__, ##arg ); }while(0);
    29.  
       
    30.  
      #define PrintColor6( fmt, arg ... )
    31.  
      do{printf("33[35m""[%s: %s: line %d]" fmt"33[0m" ,
    32.  
      __FILE__, __FUNCTION__, __LINE__, ##arg ); }while(0);
    33.  
       
    34.  
      #define PrintColor7( fmt, arg ... )
    35.  
      do{printf("33[36m""[%s: %s: line %d]" fmt"33[0m" ,
    36.  
      __FILE__, __FUNCTION__, __LINE__, ##arg ); }while(0);
    37.  
       
    38.  
      int main()
    39.  
      {
    40.  
      printf("I AM IN macro.c ");
    41.  
       
    42.  
      DEBUG1("I AM IN macro.c ");
    43.  
      DEBUG2("I AM IN macro.c ");
    44.  
       
    45.  
      PrintColor1("I AM IN macro.c ");
    46.  
      PrintColor2("I AM IN macro.c ");
    47.  
      PrintColor3("I AM IN macro.c ");
    48.  
      PrintColor4("I AM IN macro.c ");
    49.  
      PrintColor5("I AM IN macro.c ");
    50.  
      PrintColor6("I AM IN macro.c ");
    51.  
      PrintColor7("I AM IN macro.c ");
    52.  
       
    53.  
      return 0;
    54.  
      }
    注意: __FILE__  等,左右两边的下划线都分别是两条。
  • 相关阅读:
    iOS越狱后必装软件
    构建iOS交叉编译环境
    pycurl库使用详解
    iFiles浏览iphone文件
    Iphone通过ssh进行访问
    YShow性能测试平台搭建
    from my mac
    LR性能分析
    react服务端渲染(七)redux添加
    react服务端渲染(六)路由
  • 原文地址:https://www.cnblogs.com/kuangke/p/12457063.html
Copyright © 2011-2022 走看看