博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
lua在C/C++中使用table生成对应键及值
阅读量:5061 次
发布时间:2019-06-12

本文共 1599 字,大约阅读时间需要 5 分钟。

 

int nTop = lua_gettop(L);        // 栈内初始数,假设当前为0    lua_newtable(L);                // push table    lua_pushstring(L,"Line");        // push key "Line"    lua_pushcfunction(L, Line);        // push value (function)Line;    // int Line(lua_State* pLua)        // 当前栈值对应类型: table(-3),string(-2),function(-1)    lua_settable(L,-3);                // table["Line"] = Line, pop key(-2) & value(-1)        // 当前栈值对应类型: table(-1)    lua_pushstring(L, "Circle");    // push key "Circle"    lua_pushcfunction(L, Circle);    // push value (function)Circle;    // int Circle(lua_State* pLua)    lua_settable(L, -3);            // table["Circle"] = Circle, pop key & value, pop key(-2) & value(-1)            lua_setglobal(L,"Draw");        // 设置table(stack top)为全局变量,表名为Draw, 同时 pop stacktop        // 当前栈为空    lua_settop(L,nTop);                // 设置栈顶为初始数    lua_dostring(L,"Draw.Line(100,50,34,34)");  //lua调用C/C++中的Line函数.   全局变量Draw(table),key("Line")对应的函数(int Line(lua_State* pLua)),100,50,34,34,依次push入栈

 

  

// 查看lua栈内容 void stackDump(lua_State* L){
  int top = lua_gettop(L);   for (int i = 1; i <= top; ++i) { int t = lua_type(L, i); switch (t) { case LUA_TSTRING: printf("'%s'", lua_tostring(L, i));break; case LUA_TBOOLEAN: printf(lua_toboolean(L, i) ? "true" : "false");break; case LUA_TNUMBER: printf("'%g'", lua_tonumber(L, i));break; default: printf("'%s'", lua_typename(L, t));break; } printf(" "); } printf("\n");}

 

转载于:https://www.cnblogs.com/touch-skyer/p/10887045.html

你可能感兴趣的文章
51Nod 1421
查看>>
51Nod 1289 大鱼吃小鱼
查看>>
linux ps查进程 kill关闭进程
查看>>
人月神话读后感2
查看>>
JDOM 创建 XML
查看>>
mysql字符串根据指定字符分割
查看>>
腾讯新闻中心首页改版啦
查看>>
hdu 1022 Train Problem I
查看>>
Ubuntu 各版本的几个国内更新源
查看>>
_019_中断系统调用_终端(皆为粗略)
查看>>
datagridview选中一行属性
查看>>
使用repeater实现gridview的功能
查看>>
Java基础:Java抽象类与接口的区别
查看>>
C# winform 类型转换和时间详解
查看>>
排序算法
查看>>
java操作二叉树
查看>>
Properties
查看>>
Java_I/O输入输出_实现读取文件时出现一个表示读取进度的进度条。可以使用java.swing包提供的输入流类ProgressMonitorInputStream...
查看>>
Linux Running State Process ".so"、"code" Injection Technology
查看>>
php学习笔记
查看>>