lua脚本基础
1.界面的编写很大一部分可以通过脚本来实现, 可以修改加脚本而不必重新编译程序, 可以节省界面设计的时间
2.lua脚本设计目的是为了嵌入应用程序中, 为应用程序提供灵活的扩展功能
3.lua脚本可以被c/c++调用, 也可以调用c/c++的函数, 也可以代替xml, ini等文件, 容易理解和维护
4.lua由标准c编写而成, 解释器不过200k, 在目前所有脚本引擎中, lua的速度最快, 是作为嵌入式脚本的最佳选择
5.lua_open() 返回一个指向lua解释器的一个指针
6.luaL_openlibs() 装载lua库, 提供了一些简单的函数, 如print
7.luaL_dofile() 执行脚本
8.lua_close() 关闭lua
9.相关头文件:
    #include "lua.h"
    #include "lualib.h"
    #include "lauxlib.h"
    #pragma comment(lib, "lua5.1.lib") //5.1版本的lua库
    lua_State* L; //lua解释器指针
    L = lua_open(); //初始化lua
    luaL_openlibs(L); //载入lua基本库
    luaL_dofile(L, "test.lua"); //执行脚本
    lua_close(L); //清除lua
10.解释器加载lua脚本程序库: dofile("test.lua")
   然后就可以执行test.lua里面的函数了
11.lua_getglobal(L, "add"); //lua库的add全局函数
    luapushnumber(L, x); //将x压栈
    luapushnumber(L, y); //将y压栈
    lua_call(L, 2, 1); //调用前面的add函数, 2个参数, 1个返回值
    int ret = (int)lua_tonumber(L, -1); //取得返回值
    lua_pop(L, 1); //弹出栈
12.lua的注释:
    单行注释: 从"--"到行末
    多行注释: 从"--[["到"]]", 当重新启用这段代码时
    技巧:
    --[[
    语句
    --]]
    这样注释后, 只要在"--[["前加一个"-", 那么语句就可以执行了
13.lua io输入:
    a = io.read("*number") --read a number
14.lua中唯一一种数据结构 table
15.进入lua交互模式, 执行os.exit()时退出交互模式
    C:\>lua
    Lua 5.1.4  Copyright (C) 1994-2008 Lua.org, PUC-Rio
    > os.exit()
   
    C:\>
16.用lua -i参数来执行lua解释器时, 运行完lua程序后将进入交互式模式
   -i对于调试收工测试尤为有用
   用lua -e参数, 可以直接在命令行中输入代码:
    C:\>lua -e "print(math.sin(12))"
    -0.53657291800043
   用lua -l 可以加载库文件:
    lua -i -l a -e "x = 10" --命令行下加载库a, 执行x=10操作, 执行完后进入交互模式
   只要定义了一个名为"_PROMPT"的全局变量, 解释器就会用它的值作为交互模式的命令提示符
    lua -i -e "_PROMPT=' lua>'"
17.lua的保留字 --关键字:
   and break do else elseif
   end false for function if
   repeat return then true until
   while
18.全局变量不需要声明, 只需要将一个值赋予一个全局变量就可以创建了, 在lua中访问一个未初始化的变量不会出错, 结果是一个nil值
   要删除一个变量, 可以把这个变量赋值为nil
19.在交互模式中, 如果要打印任何表达式的值, 可以用等号开头, 并跟随一个表达式:
    = math.sin(3)
20.lua有8中基础的类型
   nil(空) boolean(布尔) number(数字) string(字符串)
   userdata(自定义类型) function(函数) thread(线程)
   table(表)
   函数与type可以根据一个值返回其类型的名称