美文网首页
C语言--调试

C语言--调试

作者: guanjianhe | 来源:发表于2017-12-02 21:23 被阅读0次

    首先来了解一下文件默认的输出信息的函数:

    #include<stdio.h>
    
    int main()
    {
        printf("line : %d\n", __LINE__);            //当前行数
        printf("filename : %s\n", __FILE__);        //当前文件名
        printf("function : %s\n", __FUNCTION__);    //当前函数
        printf("time : %s\n", __TIME__);            //当前时间
        printf ("date : %s\n",  __DATE__);          //当前日期
        return 0; 
    }
    /*
    输出:
    line : 5
    filename : C:\test3.cpp
    function : main
    time : 21:20:03
    date : Dec  2 2017
    */
    
    #ifdef DEBUG
    //#define DPRINTF(fmt, args...) printf(fmt, ##args)
    #define DPRINTF(fmt, args...) do { printf("%s\n%d\n", clean_filename(__FILE__), __LINE__); printf(fmt, ##args); } while(0)
    #else
    #define DPRINTF(fmt, args...)
    #endif
    

    其中cleam_finame((_FILE_)定义为

    #ifdef DEBUG
    static const char* clean_filename(const char* path)
    {
        const char* filename = path + strlen(path); 
        while(filename > path)
        {
            if(*filename == '/' || *filename == '\\')
            {
                return filename + 1;
            }
            filename--;
        }
        return path;
    }
    #endif
    

    作用是只输出文件名,而省略掉文件路径

    关于#和##,请见另一篇文章c语言中#和##

    相关文章

      网友评论

          本文标题:C语言--调试

          本文链接:https://www.haomeiwen.com/subject/kyrobxtx.html