【整理】Linux 下 自己使用的 debug宏 printf

#ifdef __DEBUG_PRINTF__
/*
*
* Some Debug printf kit for devlopment 
*
* Date   : 2019.03.04
*
* Editor : SCHIPS
*
*/

#include <stdio.h>
/* Debug with file name and line. */ 
#define DEBUG(format,...)           printf(""format"\n",  ##__VA_ARGS__ )
#define DEBUG_RED(format,...)       printf("\033[30m\033[31m"format"\033[0m\n", ##__VA_ARGS__)
#define DEBUG_GREEN(format,...)     printf("\033[30m\033[32m"format"\033[0m\n", ##__VA_ARGS__)
#define DEBUG_YELLOW(format,...)    printf("\033[30m\033[33m"format"\033[0m\n", ##__VA_ARGS__)
#define DEBUG_PURP(format,...)      printf("\033[30m\033[35m"format"\033[0m\n", ##__VA_ARGS__)
#define DEBUG_BLUE(format,...)      printf("\033[30m\033[36m"format"\033[0m\n", ##__VA_ARGS__)

/* Debug printf infomration with color. */
#define DEBUG_FL(format,...)        printf("["__FILE__"](%05d) - %s]\n  "format"\n", __LINE__, ##__VA_ARGS__ ,  __FUNCTION__)

#define DEBUG_FLR(format,...)       printf("\033[30m\033[31m["__FILE__"](%05d) - %s]\n\033[0m  "format"\n", __LINE__, __FUNCTION__,##__VA_ARGS__)
#define DEBUG_FLG(format,...)       printf("\033[30m\033[32m["__FILE__"](%05d) - %s]\n\033[0m  "format"\n", __LINE__, __FUNCTION__,##__VA_ARGS__)
#define DEBUG_FLY(format,...)       printf("\033[30m\033[33m["__FILE__"](%05d) - %s]\n\033[0m  "format"\n", __LINE__, __FUNCTION__,##__VA_ARGS__)
#define DEBUG_FLP(format,...)       printf("\033[30m\033[35m["__FILE__"](%05d) - %s]\n\033[0m  "format"\n", __LINE__, __FUNCTION__,##__VA_ARGS__)
#define DEBUG_FLB(format,...)       printf("\033[30m\033[36m["__FILE__"](%05d) - %s]\n\033[0m  "format"\n", __LINE__, __FUNCTION__,##__VA_ARGS__)


#define DEBUG_SFL(format,...)       printf("["__FILE__"](%05d) - %s]  "format"\n", __LINE__, ##__VA_ARGS__ ,  __FUNCTION__)
#define DEBUG_SFLR(format,...)      printf("\033[30m\033[31m["__FILE__"](%05d) - %s]\033[0m  "format"\n", __LINE__, __FUNCTION__,##__VA_ARGS__)
#define DEBUG_SFLG(format,...)      printf("\033[30m\033[32m["__FILE__"](%05d) - %s]\033[0m  "format"\n", __LINE__, __FUNCTION__,##__VA_ARGS__)
#define DEBUG_SFLY(format,...)      printf("\033[30m\033[33m["__FILE__"](%05d) - %s]\033[0m  "format"\n", __LINE__, __FUNCTION__,##__VA_ARGS__)
#define DEBUG_SFLP(format,...)      printf("\033[30m\033[35m["__FILE__"](%05d) - %s]\033[0m  "format"\n", __LINE__, __FUNCTION__,##__VA_ARGS__)
#define DEBUG_SFLB(format,...)      printf("\033[30m\033[36m["__FILE__"](%05d) - %s]\033[0m  "format"\n", __LINE__, __FUNCTION__,##__VA_ARGS__)

#define SC_CLEAR() printf("\033[2J")

#if 0
    /* Another format to Print (Too ugly to me to use.)*/
    #define DEBUGA(fmt,args...)         printf("[%s(%05d) - %s]\n  "#fmt"\n", __FILE__, __LINE__, __FUNCTION__, ##args)
#endif

#else
#define DEBUG(format,...)
#define DEBUG_RED(format,...)
#define DEBUG_GREEN(format,...)
#define DEBUG_YELLOW(format,...)
#define DEBUG_PURP(format,...)
#define DEBUG_BLUE(format,...)

#define DEBUG_FL(format,...)
#define DEBUG_FLR(format,...)
#define DEBUG_FLG(format,...)
#define DEBUG_FLY(format,...)
#define DEBUG_FLP(format,...)
#define DEBUG_FLB(format,...)

#define DEBUG_SFL(format,...)
#define DEBUG_SFLR(format,...)
#define DEBUG_SFLG(format,...)
#define DEBUG_SFLY(format,...)
#define DEBUG_SFLP(format,...)
#define DEBUG_SFLB(format,...) 
#define SC_CLEAR(format,...) 
#endif
debug.h
#include <stdio.h>

#if 1

//    To turn on/off Debug printf;
    #define __DEBUG_PRINTF__

#endif

#include "debug.h"

void fun1(void)
{
    DEBUG("DEBUG");
    DEBUG_RED("RED.");
    DEBUG_GREEN("GREEN.");
    DEBUG_YELLOW("YELLOW.");
    return ;  
}

void fun2(char* buff)
{
    int i = 0;
    DEBUG_FL("fun2");
    DEBUG_FLB("i = %d", i);
    DEBUG_FLR("buff = %s", buff);
    DEBUG_FLP("buff = %s", buff);
    return ;
}

void fun3(char* buff, int i)
{
    DEBUG_SFL("fun3");
    DEBUG_SFLB("i = %d", i);
    DEBUG_SFLR("buff = %s", buff);
    DEBUG_SFLP("buff = %s", buff);
    return ;
}
int main(void)
{
    SC_CLEAR();

    fun1();

    printf("---------\n");

    fun2("fun 2");
    
    printf("---------\n");

    fun3("fun3",3);

    return 0;
}
demo_main.c

 

转载于:https://www.cnblogs.com/schips/p/10473854.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值