C语言使用__FILE__只打印文件名


#include
#include
#define FILE_NAME(x) (strrchr(x,'/')?strrchr(x,'/')+1:x)
 
void main(void)
{
    printf("filename:%s\n", __FILE__);
    printf("%s\n",__DATE__);
    printf("%s\n",__TIME__);
    printf("filename:%s\n",FILE_NAME(__FILE__));
}

/*

#include  //strrchr()函数所需头文件
//windows:
#define filename(x) strrchr(x,'\\')?strrchr(x,'\\')+1:x
//linux :
#define filename(x) strrchr(x,'/')?strrchr(x,'/')+1:x
printf( "filename:%s\n", filename( __FILE__ ) );
 */

#include
#include
void NewPrintf(const char* format, ...)
{
    va_list args;
 
    va_start(args,format);
    vprintf(format,args); // 用vprintf
    va_end(args);
}

int main()
{
    int a = 0;
    int (*myshow)(const char *,...);//printf的函数原型
    printf("the printf is %p\n",printf);
    //myshow = (int (*)(const char *,...))0x401bb0;//或者
    myshow = printf;//0x401bb0为printf的地址
    NewPrintf("=====%#x\n",a);//使用myshow实现printf功能

    return 0;
}

你可能感兴趣的:(笔记,c语言,linux)