2015-05-15 101 views
-1

请帮我编写一个支持VARIADIC的编译器的printf宏,以及另一个不支持VARIADIC的编译器。用于编译器的printf宏,支持和不支持VARIADIC

例如:

#ifdef HAVE__VA_ARGS 
printf macro 

#else 
printf macro 
+1

你有什么试过的?我们不会为您编码,当您遇到特定问题时我们会提供帮助。 –

+0

我专注于不支持VARIADIC的编译器,所以就像在这种情况下,我将如何管理打印内部的参数。 – user2230832

+0

如果你的意思是'stdarg.h'的支持,它是自C89以来的标准C的一部分。 –

回答

0

可变参数一种解决方案可以是这样的锁。

#define my_printf(_format, ...) { \ 
     printf(_format, __VA_ARGS__); \ 
    } 

如果你真的有一个编译器不可变参数,那么你就必须实现与变量参数列表的功能。

#include <stdarg.h> 
#include <std.h> 
int my_printf(const char *format, ...) 
{ 
    va_list ap; 
    va_start(ap, dst); 
    return vprintf(format, ap); 
}