2022-06-02 · 学动漫、设计、电竞、电商、短视频、软件等
系统给我们提供了很多常用的函数,比如日期函数,文件函数,字符串函数,信用卡函数等,下面是常见的一些函数。
1.创建一条新线程,并将其压栈, 并返回维护这个线程的 lu a_State 指针。 这个函数返回的新线程共享原线程的全局环境, 但是它有独立的运行栈。
没有显式的函数可以用来关闭或销毁掉一个线程。 线程跟其它 L ua 对象一样是垃圾收集的条目之一。
2.创建一个运行在新的独立的状态机中的线程。 如果无法创建线程或状态机(由于内存有限)则返回 NULL。 参数 f 是一个分配器函数; L ua 将通过这个函数做状态机内所有的内存分配操作。 第二个参数 ud ,这个指针将在每次调用分配器时被转入。
3.这个函数分配一块指定大小的内存块, 把内存块地址作为一个完全用户数据压栈, 并返回这个地址。 宿主程序可以随意使用这块内存。
4.将一个 L ua 浮点数转换为一个 L ua 整数。 这个宏假设 n 有对应的整数值。 如果该值在 L ua 整数可表示范围内, 就将其转换为一个整数赋给 *p。 宏的结果是一个布尔量,表示转换是否成功。 (注意、由于圆整关系,这个范围测试不用此宏很难做对。)
该宏有可能对其参数做多次取值。
5.用户数据是保留在 Lu a 中的 C 值。 轻量用户数据 表示一个指针 void*。 它是一个像数字一样的值: 你不需要专门创建它,它也没有独立的元表,而且也不会被收集(因为从来不需要创建)。 只要表示的 C 地址相同,两个轻量用户数据就相等。
6.这个宏等价于 lua_pushlstring, 区别仅在于只能在 s 是一个字面量时才能用它。 它会自动给出字符串的长度。
lu a_pushlstring
const char *lua_pushlstring (lua_State *L, const char *s, size_t len);
7.把指针 s 指向的长度为 len 的字符串压栈。 Lua 对这个字符串做一个内部副本(或是复用一个副本), 因此 s 处的内存在函数返回后,可以释放掉或是立刻重用于其它用途。 字符串内可以是任意二进制数据,包括零字符。
返回内部副本的指针。
8.返回给定索引处值的固有“长度”: 对于字符串,它指字符串的长度; 对于表;它指不触发元方法的情况下取长度操作('#')应得到的值; 对于用户数据,它指为该用户数据分配的内存块的大小; 对于其它值,它为 0 。
它也没有独立的元表,而且也不会被收集(因为从来不需要创建)。 只要表示的 C 地址相同,两个轻量用户数据就相等。Lua 对这个字符串做一个内部副本(或是复用一个副本), 因此 s 处的内存在函数返回后,可以释放掉或是立刻重用于其它用途。 字符串内可以是任意二进制数据,包括零字符。
希望能帮到你,谢谢!