2021-12-18 · 学动漫、设计、电竞、电商、短视频、软件等
1.辅助库提供了一些便捷函数,方便在 C 中为 Lu a 编程。 基础 API 提供了 C 和 L ua 交互用的主要函数, 而辅助库则为一些常见的任务提供了高阶函数。
所有辅助库中的函数和类型都定义在头文件 lauxlib.h 中, 它们均带有前缀 luaL_。
辅助库中的所有函数都基于基础 API 实现。 故而它们并没有提供任何基础 API 实现不了的功能。 虽然如此,使用辅助库可以让你的代码更为健壮。
2.一些辅助库函数会在内部使用一些额外的栈空间。 当辅助库使用的栈空间少于五个时, 它们不去检查栈大小;而是简单的假设栈够用。
一些辅助库中的函数用于检查 C 函数的参数。 因为错误信息格式化为指代参数 (例如,"bad argument #1"), 你就不要把这些函数用于参数之外的值了。
如果检查无法通过, luaL_check* 这些函数一定会抛出错误。
3.设置给定活动记录中的局部变量的值。 参数 ar 与 n 和 lu a_getlocal 中的一样 ()。 lua_setlocal 把栈顶的值赋给变量然后返回变量的名字。 它会将值从栈顶弹出。
当索引大于活动局部变量的数量时,返回 NULL (什么也不弹出)。
lu a_setupvalue
const char *l ua_setupvalue (lua_State *L, int funcindex, int n);
4.设置闭包上值的值。 它把栈顶的值弹出并赋于上值并返回上值的名字。 参数 funcindex 与 n 和 lu a_getupvalue 中的一样 (参见 lu a_getupvalue )。
当索引大于上值的数量时,返回 NULL (什么也不弹出)。
lu a_upvalueid
void *lu a_upvalueid (lua_State *L, int funcindex, int n);
5.返回索引 funcindex 处的闭包中 编号为 n 的上值的一个唯一标识符。 参数 funcindex 与 n 和 lu a _getupvalue 中的一样 (参见 l ua_getupvalue )。 (但 n 不可以大于上值的数量)。
6.这些唯一标识符可用于检测不同的闭包是否共享了相同的上值。 共享同一个上值的 Lu a 闭包(即它们指的同一个外部局部变量) 会针对这个上值返回相同的标识。
lu a_upvaluejoin
void lu a_upvaluejoin (lua_State *L, int funcindex1, int n1, int funcindex2, int n2);
让索引 funcindex1 处的 L ua 闭包的第 n1 个上值 引用索引 funcindex2 处的 Lua 闭包的第 n2 个上值。
1. 操作系统
操作系统(Operating System,OS)是对计算机的全部软硬件资源进行控制和管理的大型软件系统,是直接运行在裸机上的最基本的系统软件,其他软件必须在操作系统的支持下才能运行,它是软件系统的核心。操作系统主要包括进程和处理器管理、作业管理、存储管理、设备管理和文件管理五大功能,其作用是管理计算机的全部硬件资源和软件资源,合理组织计算机工作流程,为用户提供高效、方便的服务界面。常见的单机操作系统有DOS、Windows 95/98等,网络操作系统有UNIX、NetWare、Windows NT/2000/XP等。
2. 数据库管理系统
数据处理在计算机应用中占很大比例,对于大量的数据如何存储、利用和管理,如何使多个用户共享同一数据资源,是数据处理中必须解决的问题,为此20世纪60年代末开发出了数据库系统,使数据处理成为计算机应用的一个重要领域。数据库系统主要由数据库(Date Base,DB)和数据库管理系统(Data Base Management System,DBMS)组成。
数据库是按一定方式组织起来的相关数据的集合。它与信息管理系统是密切相关的,是建立信息管理系统的主要软件工具。数据库已成为计算机应用的一个重要领域。目前,数据库主要用于人事管理、财务管理、档案管理、图书资料管理和仓库管理等方面的数据管理。数据管理包括数据的组织编目、定位、存储、搜索、查询、修改、排序、分类等内容。数据库技术就是针对这些数据处理而发展起来的。
数据库管理系统是对数据库进行有效管理和操作的系统,是用户与数据库之间的接口,它提供了用户管理数据库的一套命令,包括数据库的建立、修改、检索、统计和排序等功能。
具有联系的数据结构形式称为数据模型。一般数据库管理系统是按不同的数据模型把数据组织到数据库的,常用的数据模型可分为层次型、网络型和关系型3种。其中关系型数据库管理系统应用广泛,常见的有FoxBASE、FoxPro、Oracle、Sybase和Informix等。
3. 系统实用程序
系统实用程序是一些工具性的服务程序,便于用户对计算机的使用和维护。主要的实用程序有语言处理程序、编辑程序、连接装配程序、打印管理程序、测试程序和诊断程序等。
OpenGL的程序编程接口(API)定义了若干个可被客户端程序调用的函数(例如:WINGDIAPI void APIENTRY glBegin(GLenum mode);),以及一些具名整型常量(例如,常量GL_LINES对应的十六进制数为0x0001)。虽然这些函数的定义表面上类似于C编程语言,但它们是语言独立的。即OpenGL可以与很多编程语言进行绑定,例如:C语言绑定的WGL、GLX和CGL;JavaScript绑定的WebGL(基于OpenGL ES 2.0在Web浏览器中的进行3D渲染的API)等。
WebGL
图1-2 WebGL logo
OpenGL也是一个不断进化的API。新版的OpenGL规范会定期由Khronos Group发布,新版本通过扩展API来支持各种新功能。每个版本的细节由Khronos Group的成员一致决定,包括一些GPU厂商、显卡厂商、操作系统设计人员以及类似Mozilla和谷歌的一般性技术公司。