5、C++读取Lua中Table的内容

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

无限制浏览:地址

背景知识

    首先,我们来简单了解一下lua中的Table。Table是lua中唯一内置的数据结构类型。也就是说,它没有内置list、array、map、set等等数据结构类型。在lua里面那些数据类型都是通过Table来实现的。在lua中的,Table是非常强大和重要的。当我们需要将lua嵌入到应用程序里面的时候,不可避免的需要操作Table。本文就来讨论一下如何在C语言中读取Lua中Table的内容。
    其实,Lua中Table是array与map的混合。它即可想array一样使用index去访问,也可以像map一样通过key去访问。关键在于你是如何定义。当你定义Table是没有使用key时,你就可以认为它是array,通过index访问他的成员;当你定义时使用了key,就可以认为它是map,通过key来访问它的成员。当然,这两种还可以混合起来使用。所以,我们可以这样来定义一个Table

tlb={
   
   } --定义了一个空的Table。
tlb={
   
   1234} --定义可以用index访问的Table。
print(tlb[1] .. ", " .. tlb[
7、C++处理Lua中的存在嵌套(循环)的Table 我一直在回避一个事情,那就是对嵌套Table的处理。例如在Lua中有如下定义:luat_Nest= {a=123, b=456, c={1,2,3}}其中,成员C就是嵌套的。在C/C++中如何处理呢?其实,对于这种仅仅嵌套一层的表还是比较容易处理的。下面的代码就可以:代码NestTable.cpp #include static void ReadNestTable(lua 阅读详情

相关推荐

Lualua调用C++

接上一篇文章:C++调用Lua 本文在上一篇文章的基础上,使用Lua调用C++。使用文章:https://zhuanlan.zhihu.com/p/96848521 的方法。 本文的Lua版本为5.3.5 Lua调用C++ 具体过程为: 1,Lua调用C++中的函数Average 2,Average返回结果给Lua #include <stdio.h> #include <string.h> #include <iostream> extern "C" { #inclu

weixin_42111061的博客 1321

Lua学习笔记:C++操作Lua的表

C++操作Lua的表

孙君的空间站 2599

3、C++程序读取LuaTable——1

TableLua里面特有的数据结构。要想在C语言中访问这种数据结构需要使用lua提供的一系列函数才行。其实,很简单,仅仅涉及到几个小函数。废话少说,上代码。代码LuaTable.lua luat_Test={a=123, b=456,c=789}LuaTable.cpp #include <lua.hpp> // 获取Table的Item static void GetTableItem(lua_

xxNull的专栏 663

C/C++代码里面读取LuaTable

本教程将介绍Lua的栈及基本栈操作,同时还有如何在C/C++代码里面读取LuaTable

hanxiaoqiag的专栏 5788

c++获取luatable的数据

首先,我们来简单了解一下lua中的TableTablelua中唯一内置的数据结构类型。也就是说,它没有内置list、array、map、set等等数据结构类型。在lua里面那些数据类型都是通过Table来实现的。在lua中的,Table是非常强大和重要的。当我们需要将lua嵌入到应用程序里面的时候,不可避免的需要操作Table。本文就来讨论一下如何在C语言读取LuaTable内容

大猪的博客 7561

Lua教程(3):C/C++调用LuaTable

后感悟:这篇文章介绍了Lua栈的基本概念,如果想更深入了解,可以阅更详细的资源和阅调试lua源码。还讲了赋值和取值函数,这些函数你都可以查看手册,看看英文是如何介绍的,这里需要的注意的是lua_pushvalue、lua_remove、lua_insert函数,这些函数会改变栈顶元素或栈的位置。     lua_pushvalue:Pushes a copy of the element

cbbbc 1216

Lua调用C++

Lua调用C++Lua调用C++具体过程为:Lua部分的代码如下:运行结果程序运行时栈內变化回到C++调用Lua上述是读取过程,然后可以在C++中修改table中的值lua调用C++函数一、C++的函数定义二、注册函数三、C模块四、luaL_openlibs源码解析 Lua调用C++ 原文链接:https://blog.csdn.net/weixin_42111061/article/details/110310412 接上一篇文章:C++调用Lua 本文在上一篇文章的基础上,使用Lua调用C++。使用文

宁静致远的博客 5075

4、C++程序读取LuaTable——2

Lua中存在两种访问Table成员的方法。一种是Table.ItemNamed,这个我们在《C程序操作LuaTable——1》中介绍过了。下来我们来介绍另一种访问Table成员的方法——Table[index]。 也简单,废话少说,上代码。代码LuaTable2.lua luat_Test = {123, 456}LuaTable2.cpp#include int

xxNull的专栏 572

C加载lua配置,table交互, 调用lua函数

转载自:http://www.cnblogs.com/stephen-liu74/archive/2012/07/20/2460634.html(做了些添加修改) lua手册查询:http://cloudwu.github.io/lua53doc/contents.html 1. 基础: Lua的一项重要用途就是作为一种配置语言。现在从一个简单的示例开始吧。 //这里是用Lua代码

wujie_03的博客 1124

C++lua table 读取为 std::map 的一种办法

前置要求 lua51.dll 及相应的头文件。可参考Windows 下编译安装 Lua 5.3.5制作。lua53.dll 也可,相应修改链接库名称即可。 文件 -- 此文件保存为 test.lua GroundMaterialType = { BM_NULL = 0, BM_MUD = 1, BM_SNOW = 2, BM_SAND = 3, } GroundMaterialSoundEvents = { [GroundMaterialType.BM_NULL]

Hustlion 的技术博客 1155

luaC++相互交换数据

下面的代码演示了在C++lua脚本之间传递数据。首先在C++中创建一个table,添加元素,然后放置到lua的全局表中。在lua脚本中可以使用C++创建的这个表。然后在脚本中创建一个表,以脚本返回值的方式返回给C++,在C++中可以读取表中的值。 例子代码需要一个args.lualua文件,要手工创建,我把它放到了C盘根目录下。// cpplua.cpp : Defines

asmc51的专栏 1万+

lua 调用文件中的函数调用_四、C++获得Lua的变量和Table的值

上两篇文章都已经把LuaC++函数的调用讲完了,这篇开始讲变量和Table的调用。这篇文章主要是讲C++怎么调用获得Lua中的变量和Table的值,并且把lua中的值打印出来。一、直接上代码:1、在Test.lua文件内添加如下代码:print "Hello, Lua Demo4!"name="my name is lua"nameTable={sex = "male", age=18}2、在L...

weixin_39957647的博客 357

LuaC++交互详细总结

文章目录LuaC++交互详细总结cacnci LuaC++交互详细总结 要理解LuaC++交互,首先要理解Lua堆栈。 Lua和C/C++语言通信的主要方法是虚拟栈 在Lua中,Lua堆栈就是一个struct,堆栈索引的方式可是是正数也可以是负数, 正数索引1永远表示栈底,负数索引-1永远表示栈顶。如图:   lua的栈类似于以下定义, 是在创建lua_State的时候创建的: TValue stack[max_stack_len] // 欲知内情可以查 lstat

fgh123的博客 1016

linux下安装luac++交互

最近这两天需要弄清楚C++lua间相互调用和数据传递,废话不多说,直接上过程。         首先是环境环境,Linux(Debian),安装lua,注意需要管理员权限。 sudo apt-get install lua5.2 安装完后输入lua或者lua -v 严重是否安装成功以及安装的版本,当然,有了lua运行环境还不够我们还需要安装lua开发库既然我们安装的是lua5.2那么开发...

正版冒雨 1107

LuaC++交互:全局数组交互

Lua数组 ①数组是key值从1开始并连续递增的table。 ②索引号是从1开始,不是从0开始。 lua还提供了一些只针对数组进行操作的API,如下: ①LUALIB_API lua_Integer (luaL_len) (lua_State *L, int idx); luaL_len 使用于数组,可得到数组元素个数; 以数字形式返回给定索引处值的“长度”; 它等价于在 Lua...

qq826364410的专栏 1454

Lua学习笔记:浅谈table的实现

Lua学习笔记之浅谈table的实现

孙君的空间站 1711

C++/Lua联合开发】 (三) C++调用Lua

上篇讨论了 C 函数如何被 Lua 调用,反过来呢?C++ 程序如何读取 Lua 脚本里的变量、调用 Lua 函数、处理返回值?

sgzed的博客 520

# LuaC++交互(二)———— 交互

如果需要深入了解Lua,强烈建议阅lua设计与实现》。

canjiangmengyuan的专栏 1506

C++/Lua联合开发】 (二) Lua调用C++函数

本文从零开始,逐个讲解最常用的 C API 函数——每个函数做什么、怎么影响栈、在真实项目中怎么用(文中用 mpv 源码作为参考案例)。

sgzed的博客 558
上一篇: 4、C++程序读取Lua的Table——2
下一篇: 6、C++修改Lua中Table的内容
xxNull
博客等级 码龄16年 11粉丝 32原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值