C++怎么传递一个数组到LUA
2017-08-11 18:49
776 查看
C++怎么传递一个数组到LUA
数组的操作,参考实例如下:
数组其实是一种特殊的表格。
int LuaArray(lua_State* L)
{
lua_newtable(L); //新建一个表,并压入栈顶
lua_pushnumber(L,-1); //这行和下面一行,没搞懂为什么需要这样,但如果不执行,lua中获取的数据就会出错
lua_rawseti(L,-2,0);
int array[]={11,22,33,44,55};
for(int n=0;n<sizeof(array)/sizeof(int);n++)
{
lua_pushinteger(L,array
); //将数组的数据入栈
lua_rawseti(L,-2,n+1); //将刚刚入栈的数据设置为数组的第n+1个数据,同时这个数据会自动从栈里pop
}
return 1; //push进栈的数据都在设置数组时自动pop了,所以现在栈里只有1个数据,就是最开始push的表
}
lua获取刚刚传的表格
array=luaArray()
for i,v in ipairs(array)
do
print(v)
end
============================================================
array=LuaArray()
for i,v in ipairs(array) do
Output(v)
end
Output(#array);
for i=1,#array do
Output(array[i])
end
数组的操作,参考实例如下:
数组其实是一种特殊的表格。
int LuaArray(lua_State* L)
{
lua_newtable(L); //新建一个表,并压入栈顶
lua_pushnumber(L,-1); //这行和下面一行,没搞懂为什么需要这样,但如果不执行,lua中获取的数据就会出错
lua_rawseti(L,-2,0);
int array[]={11,22,33,44,55};
for(int n=0;n<sizeof(array)/sizeof(int);n++)
{
lua_pushinteger(L,array
); //将数组的数据入栈
lua_rawseti(L,-2,n+1); //将刚刚入栈的数据设置为数组的第n+1个数据,同时这个数据会自动从栈里pop
}
return 1; //push进栈的数据都在设置数组时自动pop了,所以现在栈里只有1个数据,就是最开始push的表
}
lua获取刚刚传的表格
array=luaArray()
for i,v in ipairs(array)
do
print(v)
end
============================================================
array=LuaArray()
for i,v in ipairs(array) do
Output(v)
end
Output(#array);
for i=1,#array do
Output(array[i])
end
相关文章推荐
- C++输入N个字符串,将他们依次保存到一个字符串数组中,怎么表示字符串输入完成?
- 怎样向一个c++函数传数组、Linux下怎么显示unicode字符、Linux的地址空间
- C++向Lua传递数组
- 请赐教:用C++做一个DLL在VB中调用,要传递的是一个数组
- 一个无聊男人的疯狂《数据结构与算法分析-C++描述》学习笔记 用C++/lua/python/bash的四重实现(7)习题2.8 随机数组的三种生成算法
- 请问C++在坐标轴内怎么计算一个长方形和十字形状的面积,用数组保存的坐标点
- 7.Lua调用c++传递数组函数
- jni怎么传递一个字符串数组
- C++ 怎么依次读取多个TXT里面的数据,放到一个数组里面
- C++ 将一个文件读入数组再读出数组的方法
- C++ 传递数组的问题
- C#中怎么判断一个数组中是否存在某个数组值
- 使用Django向网页的页面js中传递一个数组的方法
- 函数编译lua笔记 --- 一个C++调用lua函数的类的实现
- 一个类中定义的枚举,怎么传递到另一个不相关的类里?
- Lua和C++交互 学习记录之五:全局数组交互
- C++面试题之写一个函数找出一个整数数组中,第二大的数
- 创建一个调用lua方法的C++工程
- C++中函数怎么返回一个二维数组。指针怎么指向二维数组?
- More Effective C++----(12)理解"抛出一个异常"与"传递一个参数"或"调用一个虚函数"间的差异