C언어

가변인자

고요한하늘... 2006. 3. 4. 19:01

잘 사용하지 않는 기술인데 에러 처리와 같은 부분에서는 상당히 편하게 사용될수 있다.

 

 

#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 );
}