03-21-2026, 11:06 PM
[wiki系列] openmp/samp 关键字:运算符
来自 SA-MP Wiki
目录
char
char 返回存放给定数量字符(打包字符串)所需的 cells 数量。 即:存放给定字节数所需的 4 字节 cells 数量。
示例:
代码:
4 char返回
1。代码:
3 char返回
1(你不能拥有 3/4 个变量)。代码:
256 char返回
64(256 ÷ 4)。此运算符通常用于变量声明:
代码:
new
someVar[40 char];会创建一个10 cells大小的数组。
更多关于打包字符串(packed strings)的细节,请阅读
pawn-lang.pdf。defined
检查一个符号(symbol)是否存在。通常用于
#if 语句:代码:
new
someVar = 5;
#if defined someVar
printf("%d", someVar);
#else
#error The variable 'someVar' isn't defined
#endif最常见的用法是检查某个
#define 是否存在,并据此生成不同代码:代码:
#define FILTERSCRIPT
#if defined FILTERSCRIPT
public OnFilterScriptInit()
{
return 1;
}
#else
public OnGameModeInit()
{
return 1;
}
#endifsizeof
返回数组元素(ELEMENTS)的数量:
代码:
new
someVar[10];
printf("%d", sizeof (someVar));输出:
代码:
10二维数组示例:
代码:
new
someVar[2][10];
printf("%d %d", sizeof (someVar), sizeof (someVar[]));输出:
代码:
2 10state
此关键字与 PAWN 自动机(autonoma)代码相关,因此本文不做介绍。
tagof
tagof 返回一个代表变量标签(tag)的数字:代码:
new
someVar,
Float:someFloat;
printf("%d %d", tagof (someVar), tagof (someFloat));输出:
代码:
-./,)),(-*,( -1073741820这其实是一个轻微的显示 bug,但本质上代表:
代码:
0x80000000 0xC0000004实际应用:检查变量是否为 Float
代码:
new Float: fValue = 6.9;
new tag = tagof (fValue);
if (tag == tagof (Float:))
print("float");
else
print("not a float");#GTA# #圣安地列斯# #侠盗猎车手# #圣安地列斯联机# #samp# #gta联机# #gtasa联机# #openmp# #omp# #open.mp# #gtasa#
社区交流群: 673335567
论坛: https://open-mp.cn/

