#include int my_printf(char *fmt, ...) { void *arg = __builtin_apply_args(); void *ret = __builtin_apply((void*)printf, arg, 100); __builtin_return(ret); } int main() { my_printf("%s %s %s %s ", "This", "is", "a", "test"); my_printf("%s the anser is %d.\n", &3["expand"], 42); return 0; }