/// <summary> /// 变长参数指令。把传递给当前函数的连续多个参数加载到连续的指定寄存器中。A操作数指定第一个寄存器。B操作数指定数量。C操作数没用 /// b == 1,表示没有,b > 1,表示 b-1个参数,b = 0表示把从栈顶到a的所有寄存器全部加载 /// </summary> /// <param name="i"></param> public void Vararg(Instruction i) { int a = 0, b = 0, c = 0; i.ABC(ref a, ref b, ref c); a += 1; //b > 1和b>0统一处理 if (b != 1) { luaState.LoadVararg(b - 1); PopResults(a, b); } }