参考 https://www.myvoipapp.com/blogs/yxh/2016/07/14/c%E5%90%91lua%E5%87%BD%E6%95%B0%E4%BC%A0%E9%80%92table%E5%8F%82%E6%95%B0/

1.lua

  1. function showstr(str2)
  2. print("The string you input is " .. str2.name)
  3. end

1.c

  1. gcc -o 1 1.c -llua-5.1
  1. #include <stdio.h>
  2.  
  3. //lua头文件
  4. #ifdef __cplusplus
  5. extern "C" {
  6. #include "lua.h"
  7. #include <lauxlib.h>
  8. #include <lualib.h>
  9. }
  10. #else
  11. #include <lua.h>
  12. #include <lualib.h>
  13. #include <lauxlib.h>
  14. #endif
  15.  
  16. /*
  17. lua -> c
  18. https://www.cnblogs.com/coderkian/p/4057750.html
  19.  
  20. https://www.cnblogs.com/pied/archive/2012/10/26/2741601.html
  21. gcc -o lua lua.c -llua-5.1
  22.  
  23. https://www.cnblogs.com/sevenyuan/p/4511808.html
  24. */
  25.  
  26. int main(int argc,char ** argv)
  27. {
  28.  
  29. lua_State * L=NULL;
  30.  
  31. /* 初始化 Lua */
  32. L = lua_open();
  33.  
  34. /* 载入Lua基本库 */
  35. luaL_openlibs(L);
  36.  
  37. /* 运行脚本 */
  38. int error = luaL_dofile(L, "./1.lua");
  39. if(error) {
  40. perror("luaL_dofile error");
  41. return ;
  42. }
  43.  
  44. lua_getglobal(L,"showstr");
  45. lua_newtable(L); // 创建一个table
  46. lua_pushstring(L, "name"); //key为intVal
  47. lua_pushinteger(L,); //值为1234
  48. lua_settable(L, -); //写入table
  49.  
  50. lua_pcall(L,,,);
  51.  
  52. /* 清除Lua */
  53. lua_close(L);
  54.  
  55. return ;
  56. }

c 调用 lua 向lua函数 传递table的更多相关文章

  1. C调用Lua中的函数解析table

    Passing Tables to Lua Functions A use case that happens often is the passing of tables to and from L ...

  2. lua的克隆函数,table的深度拷贝

    --深度拷贝Table function DeepCopy(obj) local InTable = {}; local function Func(obj) if type(obj) ~= &quo ...

  3. (原)lua使用ffi调用c程序的函数

    转载请注明出处: http://www.cnblogs.com/darkknightzh/p/5812763.html 参考网址: http://luajit.freelists.narkive.co ...

  4. lua调用dll导出的函数

    参考手册 hello.dll #include "pch.h" #include "lua.hpp" #pragma comment(lib, "lu ...

  5. Lua学习(4)——函数

    在Lua中函数的调用方式和C语言基本相同,如:print("Hello World")和a = add(x, y).唯一的差别是,如果函数只有一个参数,并且该参数的类型为字符串常量 ...

  6. Lua中的函数

    [前言] Lua中的函数和C++中的函数的含义是一致的,Lua中的函数格式如下: function MyFunc(param) -- Do something end 在调用函数时,也需要将对应的参数 ...

  7. lua加载函数require和dofile

    lua加载函数require和dofile Lua提供高级的require函数来加载运行库.粗略的说require和dofile完成同样的功能但有两点不同: 1. require会搜索目录加载文件; ...

  8. lua学习之函数篇

    函数 函数是对语句和表达式进行抽象的主要机制 两种用法 一是可以完成特定的任务,一句函数调用被视为一条语句 二是以只用来计算并返回特定的结果,视为一句表达式 print("Hello, Wo ...

  9. [lua]紫猫lua教程-命令宝典-L1-01-07. table表

    L1[table]01. table表的定义与赋值 小知识:声明表的例子 xx={}--创建一个空表xx --给这表的元素赋值 test="a" xx[test]="a& ...

随机推荐

  1. 欢迎加入本人建的QQ群,讨论技术,生活及每天都有招聘信息

    银狐AS3游戏2 3438131 银狐AS3Help 1803321 银狐U3D 167024653 银狐AS3转H5 467565102 本人在MSDN上的帐号 https://social.msd ...

  2. 新手教程: 如何在新浪云计算SAE里部署代码

    感谢 sou6 的投递 时间:2011-11-22 来源:老夏博客 SAE自2011-7-10日起,全面支持SVN代码部署,用户不仅可以通过任何SVN客户端部署代码,而且SAE现有的代码部署方式也已经 ...

  3. [Plan]计划

    1. scala 2. kafka 1. lua 2. openResty 1. 日志收集 - python 2. 代码生成 3. 权限系统

  4. json日期格式话

    // 对Date的扩展,将 Date 转化为指定格式的String // 月(M).日(d).小时(h).分(m).秒(s).季度(q) 可以用 1-2 个占位符, // 年(y)可以用 1-4 个占 ...

  5. MemoryUsage:监测java虚拟机内存使用

    通过MemoryUsage可以查看Java 虚拟机的内存池的内存使用情况.MemoryUsage类有四个值(均以字节为单位): ===Init=== java虚拟机在启动的时候向操作系统请求的初始内存 ...

  6. XStream(xml/bean转换)

    XStream 1. 什么作用  * 可以把JavaBean转换为(序列化为)xml 2. XStream的jar包  * 核心JAR包:xstream-1.4.7.jar:  * 必须依赖包:xpp ...

  7. 删除右键菜单中的Git Gui Here、Git Bash Here的方法

    修改注册表的方法: 1.点击左下角开始菜单 - 运行(输入regedit)- 确定或者回车: 2.在打开的注册表中找到:HKEY_CLASSES_ROOT,并点HKEY_CLASSES_ROOT前面的 ...

  8. CSS 伪类和伪元素--pseudo

    总结在前: 0. 参考资料 1. 伪类和伪元素是不同的两种东西. 2. 伪类和伪元素都属于CSS选择器. 3. CSS引入伪类和伪元素是为了实现基于文档树之外的信息,i.e. 段落的第一行,的格式化. ...

  9. QGIS与Python

    Qgis python开发教程(一):https://blog.csdn.net/u011435933/article/details/80419496

  10. windows在python基础上安装pip

    首先你必须已经安装了python,并且配置好环境 键入pip 复制https://bootstrap.pypa.io/get-pip.py的内容并创建get-pip.py文件(该文件的内容就是刚刚复制 ...