相关文章  
  • Linux实用管理技巧小集
  • Linux中的两个问题及目录组织
  • 让Linux应用更加得心应手的20招
  • Emacs日程安排及calendar使用方法
  • 使用Lua编写可嵌入式脚本之三
  • 使用Lua编写可嵌入式脚本之二
  • 使用Lua编写可嵌入式脚本之一
  • GRUB引导进单用户模式的三种方式 下
  • linux启动全接触
  • Linux开机程序内幕(1)
  •   推荐  
      科普之友首页   专利     科普      动物      植物        天文   考古   前沿科技
     您现在的位置在:  首页 >>文献 >>培训

    使用Lua编写可嵌入式脚本之四3

    语言是一个虚拟堆栈。虚拟堆栈与实际堆栈类似,是一种后进先出(LIFO)的数据结构,可以用来临时存储函数参数和函数结果。要从 Lua 中调用宿主语言的函数(反之亦然),调用者会将一些值压入堆栈中,并调用目标函数;被调用的函数会弹出这些参数(当然要对类型和每个参数的值进行验证),对数据进行处理,然后将结果放入堆栈中。当控制返回给调用程序时,调用程序就可以从堆栈中提取出返回值。

      实际上在 Lua 中使用的所有的 C 应用程序编程接口(API)都是通过堆栈来进行操作的。堆栈可以保存 Lua 的值,不过值的类型必须是调用程序和被调用者都知道的,特别是向堆栈中压入的值和从堆栈中弹出的值更是如此(例如 lua_pushnil() 和 lua_pushnumber()。

      清单 2 给出了一个简单的 C 程序(节选自 参考资料 中 Programming in Lua 一书的第 24 章),它实现了一个很小但却功能完善的 Lua 解释器。

      清单 2. 一个简单的 Lua 解释器

     1 #include <stdio.h>
     2 #include <lua.h>
     3 #include <lauxlib.h>
     4 #include <lualib.h>
     5
     6 int main (void) {
     7   char buff[256];
     8   int error;
     9   lua_State *L = lua_open();   /* opens Lua

    页码:[1] [2] [3] [4] [5] [6] [7]3页、共7页

         

          设为首页       |       加入收藏       |       广告服务       |       友情链接       |       版权申明      

    Copyriht 2007 - 2008 ©  科普之友 All right reserved