本文节选自《LPC语言基础教程:从零学习游戏开发》,版权归@mudren,欢迎转载,但必须注明来源(mud.ren)。
第五节 LPC的关键字及术语说明
前面的内容中对LPC语言和 lpmud 做了介绍,也完成了学习开发的准备工作,为了更好的学习,这里先对基本术语做一个说明。
- 关键字(Keywords):LPC语言中的关键词和C语言相比,变化比较大。具体对比如下:
| C语言关键字 | LPC语言 | 说明 |
|---|---|---|
| auto | - | 声明自动变量 |
| short | - | 声明短整型变量或函数 |
| int | 有 | 声明整型变量或函数 |
| long | - | 声明长整型变量或函数 |
| float | 有 | 声明浮点型变量或函数 |
| double | - | 声明双精度变量或函数 |
| char | - | 声明字符型变量或函数 |
| struct | 有 | 声明结构体变量或函数 |
| union | - | 声明共用数据类型 |
| enum | - | 声明枚举类型 |
| typedef | - | 用以给数据类型取别名 |
| const | - | 声明只读变量 |
| unsigned | - | 声明无符号类型变量或函数 |
| signed | - | 声明有符号类型变量或函数 |
| extern | - | 声明变量是在其他文件中定义的 |
| register | - | 声明寄存器变量 |
| static | 旧 | 声明静态变量(mudos有,fluffos兼容模式有) |
| volatile | - | 说明变量在程序执行中可被隐含地改变 |
| void | 有 | 声明函数无返回值或无参数,声明无类型指针 |
| if | 有 | 条件语句 |
| else | 有 | 条件语句否定分支(与 if 连用) |
| switch | 有 | 用于开关语句 |
| case | 有 | 开关语句分支 |
| for | 有 | 一种循环语句 |
| do | 有 | 循环语句的循环体 |
| while | 有 | 循环语句的循环条件 |
| goto | - | 无条件跳转语句 |
| continue | 有 | 结束当前循环,开始下一轮循环 |
| break | 有 | 跳出当前循环 |
| default | 有 | 开关语句中的“其他”分支 |
| sizeof | 注 | 计算数据类型长度(LPC语言中没有这个操作符,但有同名函数) |
| return | 有 | 子程序返回语句(可以带参数,也可不带参数)循环条件 |
| LPC语言新增关键字 | 说明 |
|---|---|
| string | 声明字符串变量或函数 |
| object | 声明对象类型变量或函数 |
| buffer | 声明缓冲类型变量或函数 |
| function | 声明函数指针类型变量 |
| mapping | 声明映射类型变量或函数 |
| mixed | 声明混合类型变量或函数 |
| class | 声明结构体变量或函数 |
| varargs | 声明函数参数为可变长度 |
| efun | 调用外部函数 |
| inherit | 继承对象的方法 |
| private | 声明方法类型为私有 |
| protected | 声明方法类型为被保护的 |
| public | 声明方法类型为公开的(默认类型) |
| nomask | 声明方法类型为不可被重写的(类似其它面向对象语言中的final) |
| nosave | 声明变量类型为nosave |
| foreach | 循环语句 |
| in | 循环语句 |
| new | 保留字,LPC语言有同名函数 |
| sscanf | 保留字,LPC语言有同名函数 |
| asm | 保留字 |
| catch | 保留字,LPC语言有同名函数 |
| parse_command | 保留字,LPC语言有同名函数 |
| time_expression | 保留字,LPC语言有同名函数 |
| ref | 函数参数传引用,定义 COMPAT_32 后可以用&代替 |
| array | 声明数组,定义 ARRAY_RESERVED_WORD 后编译驱动有效 |
| closure | 定义 COMPAT_32 后编译驱动有效 |
__TREE__ |
编译时开启DEBUG后有效 |
关键字不得用做变量和函数名称,具体用法会在后续章节介绍,这里看不懂也没关系。
-
标识符(Identifier): 和C语言一样,表示变量用,区分大小写。
-
对象(object):在以前的资料中习惯叫
物件(源自台湾的翻译),在本教程中统一改成为对象,而且LPC本来就是面向对象开发。在LPMUD中的所有.c文件都是类,载入游戏后就是具体对象。 -
方法(method)和函数(function):和对象相关的函数全部称为方法,比如所有
apply函数, 在本教程中都称为apply方法,而和对象没有直接关系的函数仍然称之为函数,比如系统提供的efun。注:什么是apply什么是efun后续章节详细介绍。 -
数组(array):游戏中的一种数据类型,以前的MUD资料中习惯叫
阵列(源自台湾的翻译),本教程和现代编程语言统一,称为数组。
因为大陆MUD资料最早是从台湾传过来的,所以在计算机术语上有大量的直接使用了台湾名称的情况,这并不符合大陆程序员的习惯,本教程中强制统一使用大陆术语。以下列出了老MUD中出现的台湾术语和目前大陆术语的对比,方便新程序员理解,也建议大家都按大陆术语来记忆,不用只为了学一个LPC还得掌握台湾的术语,这也太为难自己了。
| 大陆计算机术语 | 台湾计算机术语 |
|---|---|
| 程序 | 程式 |
| 函数 | 函式 |
| 内存 | 记忆体(記憶體) |
| 变量 | 变数(變數) |
| 对象 | 物件 |
| 数组 | 阵列(陣列) |
| 比特 | 位元 |
| 宏 | 巨集 |