#include <stdio.h>
#include <stdarg.h>
int varfunc(char *buf, int id, ...)
{
va_list tag;
va_start(tag, id);
if (id == 0)
{
int arg1;
char *arg2;
char arg3;
arg1 = va_arg (tag, int);
arg2 = va_arg (tag, char *);
arg3 = va_arg (tag, int);
printf("id == 0: %d %s %d\n", arg1, arg2, arg3);
}
else
{
char *arg1;
char *arg2;
char arg3;
arg1 = va_arg (tag, char *);
arg2 = va_arg (tag, char *);
arg3 = va_arg (tag, int);
printf("id != 0: %s %s %d\n", arg1, arg2, arg3);
}
va_end(tag);
return 0;
}
int main (void)
{
char tmp_buffer [10];
varfunc (tmp_buffer, 0, 4, "Test Code", 2);
varfunc (tmp_buffer, 1, "Test", "Code", 3);
return 0;
}