跳到主要内容

关键字:操作符

char

char 返回存储指定数量字符(打包字符串)所需的内存单元数。即存储给定字节数所需的 4 字节内存单元数量。例如:

4 char

返回 1。

3 char

返回 1(无法存在 3/4 个变量单元)。

256 char

返回 64(256 除以 4)。

通常用于变量声明:

new
someVar[40 char];

将创建包含 10 个单元的数组(40 / 4 = 10)。

关于打包字符串的详细信息请参阅 pawn-lang.pdf。

defined

检查符号是否已定义,主要用于预处理指令 #if

new
someVar = 5;
#if defined someVar
printf("%d", someVar);
#else
#error 变量 'someVar' 未定义
#endif

常见用途是根据宏定义生成不同代码:

#define FILTERSCRIPT

#if defined FILTERSCRIPT

public OnFilterScriptInit()
{
return 1;
}

#else

public OnGameModeInit()
{
return 1;
}

#endif

sizeof

返回数组的 元素数量:

new
someVar[10];
printf("%d", sizeof (someVar));

输出:

10

多维数组示例:

new
someVar[2][10];
printf("%d %d", sizeof (someVar), sizeof (someVar[]));

输出:

2 10

state

该关键字与 PAWN 自动机系统相关,本文不做详细说明。

tagof

返回表示变量标签的数值:

new
someVar,
Float:someFloat;
printf("%d %d", tagof (someVar), tagof (someFloat));

输出可能显示为乱码:

-./,),(-*,( -1073741820

实际对应十六进制值:

0x80000000 0xC0000004

检查变量是否为浮点类型(带 Float: 标签):

new Float: fValue = 6.9;

new tag = tagof (fValue);

if (tag == tagof (Float:))
{
print("浮点类型");
}
else
{
print("非浮点类型");
}