If you're using the ... notation for variable parameters, the only portable option for processing those parameters is the varargs macros. You could rewrite those macros to do the same thing, but that's silly and strictly tied to the compiler.