lua和c交互用到的c api介绍
2015-10-13 13:57
435 查看
lua和c进行数据换时,使用栈,相关的操作接口如下:
1.压入元素
void lua_pushnil (lua_State *L); //压入空值到栈中
void
lua_pushboolean (lua_State *L,int bool); //布尔
void
lua_pushnumber (lua_State *L,doublen); //double
void
lua_pushlstring (lua_State *L,const char*s,size_t length); //任意的字符串(char*类型,允许包含'\0'字符)
void lua_pushstring (lua_State *L,const char*s); //字符串('\0')结尾
2.查询元素
API 提供了一套 lua_is*函数来检查一个元素是否是一个指定的类型,*可以是任何
Lua 类型。因此有 lua_isnumber,lua_isstring,lua_istable 以及类似的函数。所有这些函数都
有同样的原型:
intlua_is... (lua_State *L,intindex);
//成功返回真 否则返回假
当我们需要从栈中获得值,这里有 lua_to*函数:
int lua_toboolean (lua_State *L, int index);
double lua_tonumber (lua_State *L, int index);
const char * lua_tostring (lua_State *L, int index);
size_t lua_strlen (lua_State *L, int index);
关于C和LUA交互的API,会陆续更新。。。
1.压入元素
void lua_pushnil (lua_State *L); //压入空值到栈中
void
lua_pushboolean (lua_State *L,int bool); //布尔
void
lua_pushnumber (lua_State *L,doublen); //double
void
lua_pushlstring (lua_State *L,const char*s,size_t length); //任意的字符串(char*类型,允许包含'\0'字符)
void lua_pushstring (lua_State *L,const char*s); //字符串('\0')结尾
2.查询元素
API 提供了一套 lua_is*函数来检查一个元素是否是一个指定的类型,*可以是任何
Lua 类型。因此有 lua_isnumber,lua_isstring,lua_istable 以及类似的函数。所有这些函数都
有同样的原型:
intlua_is... (lua_State *L,intindex);
//成功返回真 否则返回假
当我们需要从栈中获得值,这里有 lua_to*函数:
int lua_toboolean (lua_State *L, int index);
double lua_tonumber (lua_State *L, int index);
const char * lua_tostring (lua_State *L, int index);
size_t lua_strlen (lua_State *L, int index);
关于C和LUA交互的API,会陆续更新。。。
相关文章推荐
- Lua中的基本函数库
- Lua 错误与异常
- Lua学习笔记--简单的时间操作
- lua 中pairs 和 ipairs区别
- c++调用lua时简单打印lua栈
- c++调用lua堆栈一直增加,内存泄漏
- Lua基本语法介绍
- lua与c++交互(基础篇)
- 【Lua】C-API
- 简单的Lua 连接操作mysql数据库的方法
- Lua的require使用
- Tengine + Lua + GraphicsMagick
- lua 的安装
- Lua入门
- Windows中编译Lua源码
- lua版本敏感词
- Lua查找表元素过程(元表、__index方法是如何工作的)
- lua对sqlite数据库操作封装
- (使用lua++)Lua脚本和C++交互(三)
- [lua]笔试-按字典序列出指指定的序列的位置