AMXXPawn operator关键字

operator关键字用于声明运算符重载语句,同时也是声明一个拥有假名的函数。

AMXXPawn的运算符重载本质是设定一个文本替换规则。

编译器会检查源码中的复合表达式,若运算符对得上,且所有操作数的值类型标签对得上,则替换为函数调用。

由于函数只能在插件运行时调用,所以满足替换条件的表达式不可能是常量表达式。

各类运算符重载语句,()是必填项目,【】是可选项目:

声明forward函数:

forward】 【值类型标签】(函数假名)(参数列表)【;


声明、定义native函数:

native) 【值类型标签】(函数假名)(参数列表) (=) (真名可见的native函数)【;

native) 【值类型标签】(函数假名)(参数列表) (=) (单值常量表达式)【;


声明、定义公共函数:

(public) 【值类型标签】(函数假名)(参数列表) (函数体)


声明、定义文件私有函数:

(static) 【值类型标签】(函数假名)(参数列表) (函数体)


声明、定义文件私有备用函数:

(static stock) 【值类型标签】(函数假名)(参数列表) (函数体)

(stock static) 【值类型标签】(函数假名)(参数列表) (函数体)


声明、定义插件私有函数:

【值类型标签】(函数假名)(参数列表) (函数体)


声明、定义插件私有备用函数:

(stock) 【值类型标签】(函数假名)(参数列表) (函数体)


(函数假名)语法拆解:

operator)(运算符)

运算符重载语句和函数声明语句基本上完全相同,除了native函数声明语句,以及函数名称的设定。

关于“函数假名”:

关于“参数列表”:

关于“参数的值类型标签”:

关于“函数的值类型标签”:

其它:

关于bug: