#assert编译时断言指令的语法:
若常量表达式的返回值为真,则断言成功.若为假,则断言失败.
编译时断言指令是一种在编译阶段进行条件检查的机制,用于验证代码中的某些假设是否成立.
如果断言失败,编译器会立即报错并终止编译,从而帮助开发者在早期发现潜在问题.
#include <cellarray>
// 断言在此之前已经引用了cellarray.inc文件,该文件定义了_cellarray_included标识符
#assert (defined(_cellarray_included));
// 断言当前AMX Mod X版本高于1.8.2
#assert (182 < AMXX_VERSION_NUM);
const Float:OBJECT_HEIGHT = 36.0;
// 断言OBJECT_HEIGHT拥有Float标签(需 AMX Mod X 1.8.2 以上版本才支持tagof(Float:)语法)
#assert (tagof(OBJECT_HEIGHT) == tagof(Float:));
// 断言OBJECT_HEIGHT的二进制整数等于18.0或36.0的二进制整数
#assert (_:OBJECT_HEIGHT == _:18.0 || _:OBJECT_HEIGHT == _:36.0);
#include <amxmodx>
static const PluginName[] = "测试插件";
static const PluginVersion[] = "1.0.0";
static const PluginAuthor[] = "插件作者";
// 断言PluginName不是空字符串(空字符串含有1个终止符,尺寸为1)
#assert (1 < sizeof(PluginName));
// 断言PluginVersion不是空字符串(空字符串含有1个终止符,尺寸为1)
#assert (1 < sizeof(PluginVersion));
// 断言PluginAuthor不是空字符串(空字符串含有1个终止符,尺寸为1)
#assert (1 < sizeof(PluginAuthor));
public plugin_init()
{
register_plugin(PluginName, PluginVersion, PluginAuthor);
server_print("[AMXX]PluginName的元素数量为:%d", sizeof(PluginName));
server_print("[AMXX]PluginVersion的元素数量为:%d", sizeof(PluginVersion));
server_print("[AMXX]PluginAuthor的元素数量为:%d", sizeof(PluginAuthor));
}