如何在C语言中调用Lua运算符?

以下示例显示了 C 程序如何执行与 Lua 代码等效的操作:

a = f(t)

以下是 C 代码:

lua_getglobal(L, "f");    // 函数名称
lua_getglobal(L, "t");    // 一个参数
lua_call(L, 1, 1);        // 调用 "f" 并返回一个结果
lua_setglobal(L, "a");    // 将结果设置为 "a"

那么,下面的 Lua 代码的等效 C 代码是什么?

a = t + 1

由于我们对 t 没有任何信息,因此应在 C 代码中调用底层的 + 运算符,但是怎么做呢?

点赞
用户5622901
用户5622901
    lua_getglobal(L, "t");
    lua_pushinteger(L, 1);
    lua_arith(L, LUA_OPADD);
    lua_setglobal(L, "a");

将全局变量 "t" 的值取出来,压入一个整数 1,进行加法运算,将结果设置为全局变量 "a" 的值。

2015-11-30 21:20:45