잘 사용하지 않는 기술인데 에러 처리와 같은 부분에서는 상당히 편하게 사용될수 있다.
#include
void error( char *format, ... )
{
va_list list;
va_start( list, format );
while( *format != '\0' )
{
// string
if( *format == 's' )
{
char* s = va_arg( list, char * );
printf( "[msg] strnig : %s\n", s );
}
// integer
else if( *format == 'd' )
{
int d = va_arg( list, int );
printf( "[msg] integer : %d\n", d );
}
*format++;
}
va_end( list );
}
int main( void )
{
error("s", "This is a string");
error("d", __LINE__);
return( 0 );
}