log宏与条件式编译

debug 时可以使用log 宏来来查找;

#include<stdio.h>
#ifdef DEBUG
#define log(frm, args...) {\  // frm 为格式, args 为变参列表;
    printf("[%s : %s : %d] ", __FILE__, __func__, __LINE__);\
    printf(frm,##args);\ //## ,两个##表示连接;
    printf("\n");\
}
#else
#define log(frm, args...)
#endif

#define contact(a,b) a##b // 将a 和 b 连接在一起;
int main() {
    int a = 123;
    int b = 234;
    int abc, def;
    int abcdef = 0;
    printf ("[%s : %s : %d] a = %d\n", __FILE__, __func__, __LINE__, a);
    log("b = %d", b);
    printf ("Hello world\n");
    log ("Hello world");
    contact(abc, def) = 112233;
    log ("%d", abcdef);


    return 0;
}

当debug 完成之后,可以使用条件式编译;
#ifdef DEBUG
如果定义了debug 宏, 则往下执行,否则执行#else 后面的语句;
没有定义DEBUG时,log 宏不会被执行,可在#ifdef DEBUG 前加上 #define DEBUG;
也可直接编译,gcc -DDEBUG log.c

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页