C语言 - 可变参数

#include <stdarg.h>
void parseDumparg(E_Dump_Type eType, ...)
{
    va_list arg_ptr;
    va_start(arg_ptr, eType);
    switch(eType)
    {
        case E_DUMP_arg2:
        {
            int i = va_arg(arg_ptr, int);
            printf("%d, %d\n", eType, i);
            break;
        }
        case E_DUMP_arg3:
        {
            int i = va_arg(arg_ptr, int);
            int j = va_arg(arg_ptr, int);
            printf("%d, %d, %d\n", eType, i, j);
            break;
        }
        default:
            break;
    }
    va_end(arg_ptr);
    return;
}

typedef enum{
    E_DUMP_arg1,
    E_DUMP_arg2,
    E_DUMP_arg3
}E_Dump_Type;

    parseDumparg(E_DUMP_arg2,200);
    parseDumparg(E_DUMP_arg3,20, 450);

 

posted @ 2016-11-20 21:51  PACHEL35  阅读(185)  评论(0编辑  收藏  举报