请帮助我为一个支持VARIADIC的编译器和另一个不支持VARIADIC的编译器编写一个printf
宏。
例如:
#ifdef HAVE__VA_ARGS
printf macro
#else
printf macro
最佳答案
使用VARIADIC的解决方案可以像这样被锁定。
#define my_printf(_format, ...) { \
printf(_format, __VA_ARGS__); \
}
而且,如果您确实有一个不带VARIADIC的编译器,则必须实现一个带有变量参数列表的函数。
#include <stdarg.h>
#include <std.h>
int my_printf(const char *format, ...)
{
va_list ap;
va_start(ap, dst);
return vprintf(format, ap);
}