http://bbs.youkuaiyun.com/topics/390371886
#include <stdarg.h>
#include <stdio.h>
int myprintf(const char *fmt, ...)
{
int ret;
va_list ap;
va_start(ap, fmt);
ret = vprintf(fmt, ap);
va_end(ap);
return ret;
}
void logv(const char *file, int line, const char *fmt, ...)
{
va_list ap;
va_start(ap, fmt);
printf("%s:%d: ", file, line);
vprintf(fmt, ap);
va_end(ap);
}
#define dolog(fmt, ...) logv(__FILE__, __LINE__, fmt, __VA_ARGS__)
int main(int argc, char *argv[])
{
myprintf("argc=%d\n", argc);
dolog("argc=%d\n", argc);
return 0;
}
本文介绍了一个使用C语言实现的可变参数函数示例,包括自定义的myprintf函数和logv函数,展示了如何利用va_list、va_start、va_end等宏来处理可变数量的参数,并通过#define定义宏进行简洁调用。
3653

被折叠的 条评论
为什么被折叠?



