C语言可变参数列表的传递

第一次使用可变参数列表,居然是在一次code kata中。

而第一次使用,居然就需要在函数之间传递。在网络上搜到了很多示例代码,不知道是编译器版本不一样还是咋回事,很多都编译不过,最后摸索出了成功运行的代码:

void ExecutCommand(Command command, int n)
{
    switch(command)
    {
        case FORWARD:
            return Forward();
        case BACKWARDN:
            return BackwardN(n);
    }
}

void Execut(Command command, va_list arg)
{
    int n=0;
    if (!isOneParaCommand(command)) {
        n = va_arg(arg, int);
    }
    ExecutCommand(command,n);
    va_end(arg);
}

void Repeat(int m,Command command, ...)
{
    va_list arg;
    va_start(arg, command);
    while(m--){
        Execut(command,arg);
    }
    va_end(arg);
}

code kata完整代码:https://blog.csdn.net/nameofcsdn/article/details/110289048

你可能感兴趣的:(C语言可变参数列表的传递)