I think the va_lists are pretty clean but I guess it depends on what you need to do. I've never done a speed test on them but this is the basic way to use them (for those who haven't ever). What are you trying to accomplish?
stdarg library - va_list
simple usage:
Code:
void VariableArgFunction( int NumArgs, ... ) {
/* a pointer to the list of arguments */
va_list ArgList;
/* loop counter variable */
int i;
/* initialize the list */
va_start( ArgList, NumArgs );
/* process the variables in the list */
for( i = 0; i < NumArgs; i++ ) {
printf( "Argument %d:%d\n", i, va_arg( ArgList, int ) );
}
/* when we're done with the list */
va_end( ArgList );
}