Lua常用函数说明
2015-07-10 14:32
176 查看
1.lua_setglobal
(1)原型
(2)作用
将栈顶元素赋值给name变量。(name参数的值,是lua脚本中全部变量的名字。)
(注:调用完函数,我们调用luaL_dofile,然后我们就可以在lua脚本中打印出_G表中内容,会发现name名字的变量正在其中,所以可以在lua脚本中操作该name名变量)
(3)对栈的操作
调用完成后,会将栈顶元素弹出
2.lua_getglobal
(1)原型
(2)作用
从lua脚本中获取一个name参数描述的变量,放到栈顶
(3)对栈的操作
将获得的变量,放置到栈顶
3.lua_setfield
(1)原型
(2)作用
在lua脚本中表达的操作是:t[k] = v. index指明了t在栈中的位置(说明:栈中首先要有表t),k代表了t的下标,v代表了赋予的值(即:放置在栈顶的元素)
(注:调用这个函数之前,栈中应该有:表t 和 栈顶元素v)
(3)对栈的操作
调用完成后,会将栈顶元素v弹出。
4.lua_getfield
(1)原型
(2)作用
取t[k]的值放到栈顶,index指出栈中t表的位置, k为t的key值
(3)对栈的操作
放置t[k] 的值到栈顶
5.lua_push*
(1)原型
(2)作用
放置xxx元素到栈顶
(3)对栈的操作
放置一个元素到栈顶
6.lua_to*
(1)原型
...
(2)作用
将index指明位置上的元素转换为对应类型返回
(3)对栈的操作
不会改变栈的大小,内容.
7.lua_is*
(1)原型
(2)作用
判断index指明位置上的元素是为对应的*类型,这里是string. 如果是则返回1,否则返回0
(3)对栈的操作
不会改变栈的大小,内容
8.lua_pcall
(1)原型
(2)作用
调用函数.nargs指明了参数的个数,nresults指明了返回结果的个数,errfunc指明了发生错误的处理函数
(注:调用lua_pcall之前,我们应该先:放置一个函数到栈中(可用:lua_getglobal),然后压入要传递的参数(可用:lua_push*))
(3)对栈的操作
调用lua_pcall之后,它会首先将栈中的:函数,参数全部弹出 ; 然后:将结果一次压入栈中。
9.lua_gettop
(1)原型
(2)作用
获取栈中的元素个数
(3)对栈的操作
不会修改栈的内容和大小
10.lua_settop
(1)原型
(2)作用
如果新传入的index比原来的栈顶大,那么超出的元素被填入nil. 可以传入0,那么栈将会被清空
(3)对栈的操作
会修改栈的大小
11.lua_pop
(1)原型
(2)作用
从栈中弹出n个元素
(3)对栈的操作
从战中弹出n个元素
12.lua_settable
(1)原型
(2)作用
t[k] = v的作用, index指明了栈中t表的位置,v是栈顶的值,k是栈顶之下的那个值
(3)对栈的操作
调用这个函数之后,会将v和k的值从栈中弹出。
13.lua_gettable
(1)原型
(2)作用
将t[k]的值放到栈顶, index指明栈中t表的位置, k从何而来呢?调用这个函数时,k代表了在栈顶元素。
(3)对栈的操作
调用这个函数后,会将k从栈顶弹出,然后再把t[k]值放到栈顶
(1)原型
void lua_setglobal (lua_State *L, const char *name);
(2)作用
将栈顶元素赋值给name变量。(name参数的值,是lua脚本中全部变量的名字。)
(注:调用完函数,我们调用luaL_dofile,然后我们就可以在lua脚本中打印出_G表中内容,会发现name名字的变量正在其中,所以可以在lua脚本中操作该name名变量)
(3)对栈的操作
调用完成后,会将栈顶元素弹出
2.lua_getglobal
(1)原型
void lua_getglobal (lua_State *L, const char *name);
(2)作用
从lua脚本中获取一个name参数描述的变量,放到栈顶
(3)对栈的操作
将获得的变量,放置到栈顶
3.lua_setfield
(1)原型
void lua_setfield (lua_State *L, int index, const char *k);
(2)作用
在lua脚本中表达的操作是:t[k] = v. index指明了t在栈中的位置(说明:栈中首先要有表t),k代表了t的下标,v代表了赋予的值(即:放置在栈顶的元素)
(注:调用这个函数之前,栈中应该有:表t 和 栈顶元素v)
(3)对栈的操作
调用完成后,会将栈顶元素v弹出。
4.lua_getfield
(1)原型
void lua_getfield (lua_State *L, int index, const char *k);
(2)作用
取t[k]的值放到栈顶,index指出栈中t表的位置, k为t的key值
(3)对栈的操作
放置t[k] 的值到栈顶
5.lua_push*
(1)原型
lua_pushnil(lua_State *L, xxx) lua_pushstring(lua_State *L, xxx) lua_pushnumber(lua_State *L, xxx) lua_pushinteger(lua_State *L, xxx)
(2)作用
放置xxx元素到栈顶
(3)对栈的操作
放置一个元素到栈顶
6.lua_to*
(1)原型
...
(2)作用
将index指明位置上的元素转换为对应类型返回
(3)对栈的操作
不会改变栈的大小,内容.
7.lua_is*
(1)原型
int lua_isstring(lua_State *L, int index) ....
(2)作用
判断index指明位置上的元素是为对应的*类型,这里是string. 如果是则返回1,否则返回0
(3)对栈的操作
不会改变栈的大小,内容
8.lua_pcall
(1)原型
lua_pcall(lua_State *L, int nargs, int nresults, int errfunc);
(2)作用
调用函数.nargs指明了参数的个数,nresults指明了返回结果的个数,errfunc指明了发生错误的处理函数
(注:调用lua_pcall之前,我们应该先:放置一个函数到栈中(可用:lua_getglobal),然后压入要传递的参数(可用:lua_push*))
(3)对栈的操作
调用lua_pcall之后,它会首先将栈中的:函数,参数全部弹出 ; 然后:将结果一次压入栈中。
9.lua_gettop
(1)原型
int lua_gettop (lua_State *L);
(2)作用
获取栈中的元素个数
(3)对栈的操作
不会修改栈的内容和大小
10.lua_settop
(1)原型
void lua_settop (lua_State *L, int index);
(2)作用
如果新传入的index比原来的栈顶大,那么超出的元素被填入nil. 可以传入0,那么栈将会被清空
(3)对栈的操作
会修改栈的大小
11.lua_pop
(1)原型
void lua_pop (lua_State *L, int n);
(2)作用
从栈中弹出n个元素
(3)对栈的操作
从战中弹出n个元素
12.lua_settable
(1)原型
void lua_settable (lua_State *L, int index);
(2)作用
t[k] = v的作用, index指明了栈中t表的位置,v是栈顶的值,k是栈顶之下的那个值
(3)对栈的操作
调用这个函数之后,会将v和k的值从栈中弹出。
13.lua_gettable
(1)原型
void lua_gettable (lua_State *L, int index);
(2)作用
将t[k]的值放到栈顶, index指明栈中t表的位置, k从何而来呢?调用这个函数时,k代表了在栈顶元素。
(3)对栈的操作
调用这个函数后,会将k从栈顶弹出,然后再把t[k]值放到栈顶
相关文章推荐
- TOJ 4114 Evaluate Xor
- Lua的类型与值
- LUA入门基础知识点
- luaL_dofile和luaL_loadfile的区别
- MAC 上搭建lua
- lua的函数初识
- Evaluate Reverse Polish Notation
- Lua与c/c++交互
- lua string
- lua语法入门
- quick-3.5 lua调用c++
- angluar去掉url中#
- 第1章 Lua基础
- lua
- Lua编程示例(八):生产者-消费者问题
- Lua脚本之语法基础快速入门
- Lua编程示例(七):协同程序基础逻辑
- Lua编程示例(六): C语言调用Lua函数
- Lua编程示例(五): C语言对Lua表的读取和添加
- lua的几个时间相关处理函数