我正在创建一个创建打印功能的C库,它基本上执行printf。因此,我希望从glibc创建一个printf副本,但名称为print。如何在不复制所有代码的情况下复制此函数?
(我找到了代码here,但不明白如何在我的库中复制它,或者这样做是否合法。)
答案 0 :(得分:3)
你去了:
#include <stdarg.h>
void println(const char* format,...)
{
va_list args;
va_start(args,format);
vprintf(format,args);
printf("\n");
va_end(args);
}
答案 1 :(得分:3)
您可以使用可变参数宏:
#define println(...) (printf(__VA_ARGS__), (void) puts(""))
答案 2 :(得分:2)
您可以使用宏:
#define print printf
或定义包装函数
int print( char *fmt, ... )
{
va_list ap;
int n;
va_start(ap, fmt);
n = vprintf(fmt, ap);
va_end(ap);
return n;
}