阅读114 返回首页    go 阿里云 go 技术社区[云栖]


封装printf函数,针对工程中不同的模块(can,gps, gsm)进行调试输出

#ifndef DEBUG_H
#define DEBUG_H


#include <stdio.h>
//Usage:
//just include this file and define MYDEBUG_PART like
//
//int MYDEBUG_PART=MYDEBUG_CAN
//
//in the program use the command by
//mydebug(can, "test %d with %s\n", 100, "hello,world");
//mydebug_can("test %d with %s\n", 100, "hello,world");
//#define MYDEBUG_PREFIX "--wuyq:can--"


#define MYDEBUG_PREFIX __FILE__


#define MYDEBUG_OFF 0
#define MYDEBUG_CAN 1
#define MYDEBUG_GPS_ON 2
#define MYDEBUG_GSM 3
     
#ifdef DEBUG_CAN_ON
#define mydebug_can(msg...) \
do{ \
    if (MYDEBUG_CAN>=MYDEBUG_OFF) { \
        printf(MYDEBUG_PREFIX msg); \
    } \
 }while(0)
#else 
#define mydebug_can(msg...) 
#endif


#define mydebug_gps(msg...) \
do{ \
    if (MYDEBUG_GPS_ON>=MYDEBUG_OFF) { \
        printf(MYDEBUG_PREFIX msg); \
    } \
    else{\
       /*空函数*/\
    } \
 }while(0)


#define mydebug_gsm(msg...) \
do{ \
    if (MYDEBUG_GSM>=MYDEBUG_OFF) { \
        printf(MYDEBUG_PREFIX msg); \
    } \
 }while(0)


#define mydebug(part,  msg...) mydebug_##part(msg)


#endif


gps.c:

#include "debug.h"

int main()
{
	mydebug(gps, "gps program is running\n");
	mydebug_gps(" hello gps.c----\n");
	return 0;
}


can.c:
#include "debug.h"


int main()
{
	mydebug_can(" hello can.c!!!\n");
	return 0;
}


gcc - can.c -DDEBUG_CAN_ON -o can


最后更新:2017-04-03 12:56:20

  上一篇:go 【试练】某公司面试试题
  下一篇:go Android自定义RadioGroup实现单选完整示例