-->1.无参无返回值
-->2.无参有返回值
-->3.有参无返回值
-->4.有参有返回值
-->演示:函数作为参数传递给函数
-->演示2:0000000
---->练习1:比较俩个数的大小,返回最大的数
---->练习2:利用可变参数列表,使用任意一种循环求和值
---->向下取整
-->数组
-->这里需要注意lua中的数组是从1开始的,当然你也可以
-->自定义下标
-->练习1:找出数组中最大的值
-->二维数组
-->演示泛型迭代器
LUA脚本语言基本使用方法是本文要将介绍的内容,主要是来学习Lua脚本语言的使用方法,具体内容来看本文详解。先要把下边这些语句加入到VC中的头文件,一般是加到StdAfx.h中
extern "C" { #include "lua.h" #include "lualib.h" #include "lauxlib.h" #pragma comment(lib, "lualib.lib") #pragma comment(lib, "lua.lib") }
然后一般来说都使用一个全局的LUA库定义的这个东西
lua_State* g_Lua
并且在工程处初始化时也给LUA初始化
g_Lua = lua_open() **加这句 /* load Lua base libraries */网上一些教材中这么写的lua_baselibopen(g_Lua) 不过我这简单的例子中不用到这些也行 lua_tablibopen(g_Lua) lua_iolibopen(g_Lua) lua_strlibopen(g_Lua) lua_mathlibopen(g_Lua)
紧接着声明接口函数,注册上函数
lua_register(g_Lua, "Message",myMessage)
好,初始化部分完了,看看接口函数的写法。
函数必须这样的格式来写
static int Func(lua_State *L) { 静态型函数,而且必须带参数为lua_State结构指针 返回的值是代表返回的数据个数,比如return 2就可以代表 返回两个整数啊,浮点数什么的,象LUA的脚本编写就可以这样 i, j = Func() , 这样就表示可以从Func接口函数中得到两个返回值了 return 0 }
执行脚本语句可以读文件,也可以直接读函数名
注册了
lua_register(g_Lua, "Message",myMessage) static int myMessage(lua_State *L) { OutputDebugString("OK") return 0 }lua_dofile(g_Lua, strCurPath)//读文件,必须给出完整的文件路径名称 lua_dostring(g_Lua, "Message()")//直接读函数
文件中只要写上
Message()
就可以了。
在Lua 5.2及之前的版本,所有数值都以双精度浮点格式表示,从5.3版本开始,Lua语言的number分为integer的64位整型和被称为float的双精度浮点型,若想要32位的整型和单精度浮点类型,可以将Lua 5.3编译为精简Lua(Small Lua)模式.
可以使用%a参数进行格式化输出,如:
这种格式很难阅读,但是可以保留所有浮点数的精度,并且比十进制转换速度更快
// 区分整数和浮点数,由于5.3版本之前没有整数的概念,所以math.floor永远返回整数,// 的 *** 作数只要有一个浮点数,则向下取整返回浮点数
取模运算的定义:
由此可知,取模和取余数差不多,当想要一个值不超过某个范围的时候,就对该值进行取模, 在整数的情况下, a % b 取模的值永远在[1,b-1]范围内,即 5 % 3的取模结果在[1,3]之间
Lua语言的关系运算六种
标准数学库math,包括三角函数(sin,cos,tan,asin等)、指数函数、取整函数、最大和最小函数max和min,random以及常量pi和huge(最大可表示数值,在大多数平台上代表inf)
math.random
math.randomseed 用于设置伪随机数发生器的种子,看例子就明白了了
math.randomseed每次设置一样的值,则math.random就会生成一样的随机数,不管math.random带不带参数。
三个取整函数:
floor 向负无穷取整
ceil向正无穷取整
modf向0取整,并会返回小数部分作为第二个结果
如果想将数值x向最近的整数取整,这个问题没看懂??????
数学库中的常量定义了整型值的最大值math.maxinteger和最小值math.mininteger
这段内容也没完全看懂?????
整型转行成浮点型
浮点型转行成整型
可以充分利用math.tointeger函数来判断一个数值是否为整数
从上到下,优先级从高到低
在二元运算符中,除了幂运算和连接 *** 作符是右结合外,其他都是左结合
Lua 5.3 支持的最大整数为2^63,而Lua 5.2支持的最大整数为2^53,由于5.2及以下版本没有整数,所以跟整数相关的函数都不支持,如math.type()、math.maxinteger、math.mininteger、math.tointeger等
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)