C語言基於printf下加入debug等級

實現方法1:

#include <stdio.h>

unsigned int debugflags = 1; //這裏設計debug值,我默認全部輸出

#define mprintf(level,args...) \
do { if((debugflags & level)) printf(args);} while(0);

//或者使用此方式
#define mprintf(level,arg...)  \
do { \
       if(debugflags >= level) \
        printf(args); \
}while(0);

int main(void)
{
    int level = 1;
    mprintf(level,"this is a test %d\n",1);
    return 0;
}

程序輸出結果:  this a test 1

 

實現方法2:

#include <stdio.h>
#include <stdarg.h>

void mprintf(int flags,const char *fmt,...)
{
    if(!flags){
        return ;
    }
    va_list args;
    va_start(args,fmt);
    printf(fmt,args);
    va_end(args);
}

int main(void)
{
    int flags = 1;
    
    mprintf(flags,"here is test %d\n",1);
    return 0;
}

具體debug等級相關細節就不寫了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章