AMXXPawn const关键字

1. 使用const创建常量

const关键字可用于声明全局常量或局部常量:点击查看常量指南

用常量代替魔数(数值字面量),可提高代码可读性和可维护性。

用常量代替变量,避免根据地址查找数值,可提高代码效率。

2. 使用const修饰变量

const可与newpublicstaticstock组合使用,为非参数变量添加只读特性:点击查看变量指南

const可为参数变量添加只读特性:点击查看参数指南

为变量添加只读特性,可禁止用户使用运算符修改变量值,提高代码可读性。

3. 代码示例

#include <amxmodx> // 声明全局常量 const MAX_PLAYERS = 32; // 为插件私有变量添加只读特性 new const MaxClients; // 为假公共备用变量添加只读特性 public stock const Float:V3_Zero[3]; // 为文件私有备用变量添加只读特性 static stock const Float:V3_X[3], Float:V3_Y[3], Float:V3_Z[3]; SetVariable( const &any:variable, // 为传引用的参数添加只读特性 any:newValue ) { const VAR_ARG_INDEX = 0; // 声明局部常量 const VAR_ELEMENT_INDEX = 0; // 声明局部常量 setarg(VAR_ARG_INDEX, VAR_ELEMENT_INDEX, newValue); } SetArray( const any:array[], // 为传引用的参数添加只读特性 const any:... // 为传引用的可变参数添加只读特性 ) { new cellCount = numargs() - 1; if (cellCount < 1) return; new addr = get_var_addr(array); const CELL_SIZE = 4; // 声明局部常量 for (new cellId; cellId < cellCount; cellId++) set_addr_val(addr + cellId * CELL_SIZE, getarg(1 + cellId)); } public plugin_precache() { SetVariable(MaxClients, get_maxplayers()); SetArray(V3_X, 1.0, 0.0, 0.0); SetArray(V3_Y, 0.0, 1.0, 0.0); SetArray(V3_Z, 0.0, 0.0, 1.0); server_print("[AMXX]MaxClients: %d", MaxClients); server_print("[AMXX]V3_X: %.f %.f %.f", V3_X[0], V3_X[1], V3_X[2]); server_print("[AMXX]V3_Y: %.f %.f %.f", V3_Y[0], V3_Y[1], V3_Y[2]); server_print("[AMXX]V3_Z: %.f %.f %.f", V3_Z[0], V3_Z[1], V3_Z[2]); }