AMXXPawn 符号指南

目录

1. 符号类型

AMXXPawn中的符号大致可分为三类:

注意:符号需要先定义,然后才能使用。运算符和保留词是AMXXPawn定义的符号,有固定的作用。标识符是由用户自定义的符号,其用途由用户决定。

2. 运算符

AMXXPawn提供了丰富的运算符,用于执行各种计算和操作:

2.1 算术运算符

+ - * / % ++ --

2.2 二进制位操作运算符

~ >> >>> << & | ^

2.3 赋值运算符

= += -= *= /= %= >>= >>>= <<= &= |= ^=

2.4 关系运算符

== != < <= > >=

2.5 逻辑运算符

! && ||

2.6 其他运算符

[] {} () ? : : , defined sizeof tagof char

点击查看运算符指南

3. 关键字

AMXXPawn中的关键字(保留词)具有特殊含义,不能用作标识符名称。

运算符 声明说明符 流程控制
char const assert
defined enum break
operator forward case
sizeof native continue
tagof new default
public do
static else
stock exit
for
goto
if
return
sleep
state
switch
while

警告:使用保留词作为标识符名称会导致编译错误。例如:

new tagof = 5; // 用保留词new定义一个名为tagof的变量,会报错.因为tagof是保留词 new switch = 5; // 用保留词new定义一个名为switch的变量,会报错.因为switch是保留词

4. 标识符

标识符是由用户定义的符号,用途由用户决定。

inc文件中包含大量标识符定义,用户引用inc文件的行为,也等于定义了这些标识符。

标识符可以分为以下几种类型:

4.1 标识符命名规则

4.2 作用域规则

所有标识符都有作用域(能够使用该符号的区域)。如果两个同名变量的作用域终点相同,将导致插件编译失败(编译器无法确定使用哪个变量)。

即使作用域终点不同,在同一个函数内部也应尽量避免定义同名变量,以避免产生歧义。

作用域示例:

// 用static定义名为index的全局变量,作用域终点位于当前文件末尾 static index; // 定义一个函数func public func() { // 用new定义名为index的局部变量,作用域终点位于 } 右花括号 // 与全局变量index的终点不同,不会报错 new index; new var; // 作用域终点位于 } 位置 new var; // 报错!上下两个var的作用域终点相同 return index + var; }

5. 命名规范

良好的命名规范能提高代码可读性和可维护性。以下是AMXXPawn社区中常见的命名约定:

5.1 常量命名

常量通常全部大写,并用下划线分隔单词:

MAX_PLAYERS MAX_NAME_LENGTH

5.2 伪结构体命名

定义伪结构体值类型时,必须以小写字母开头:

enum sPlayer { 结构体属性1索引常量, 结构体属性2索引常量 }

5.3 变量命名

5.4 函数命名

函数通常全部小写用下划线分隔单词,或每个单词首字母大写:

is_user_alive get_user_weapon ArrayGetCell ExecuteHamB

5.5 常见命名方法

最佳实践:命名规则应尽可能一致和规范。这能提高代码可读性,使人一看就能猜出符号的大致含义。同时,要避免使用具有歧义的符号名,以防止在开发过程中出现混淆和错误。