C语言可变参数打印。


#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include <sys/errno.h>


#define __log(t,fmt,...)   \
            printf("mesg level: %d |"fmt,t,##__VA_ARGS__);
#define __errno_log(fmt,...)    \
            printf(fmt"|errno: <%s>\n",##__VA_ARGS__,strerror(errno));
void main(void)
{
    __log(4,"I am a test <%d> \n",__LINE__);
    __errno_log("I test errno; line <%d>",__LINE__);
}




结果:

mesg level: 4 |I am a test <15>

I test errno; line <16>|errno: <Success>






版权声明:本文为wbd880419原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。