Pawn Language:枚举函数中的参数

时间:2017-05-15 06:25:58

标签: pawn

我正在学习Pawn语言。我在enum功能

中遇到参数问题
enum E_MY_TAG (<<= 1)
{
    E_MY_TAG_NONE,
    E_MY_TAG_VAL_1 = 1,
    E_MY_TAG_VAL_2,
    E_MY_TAG_VAL_3,
    E_MY_TAG_VAL_4
}

new
    E_MY_TAG:gMyTagVar = E_MY_TAG_VAL_2 | E_MY_TAG_VAL_3;

我了解到enum中的值默认会增加+=1 我的课程上写了代码:

new E_MY_TAG:gMyTagVar = E_MY_TAG_VAL_2 | E_MY_TAG_VAL_3;

那将创建一个新变量并为其赋值6(4 | 2)

我不理解,为什么E_MY_TAG_VAL_2的值4E_MY_TAG_VAL_32,而枚举函数中的参数为什么<<=1 {1}},我记得没有这样的算子

1 个答案:

答案 0 :(得分:1)

此枚举器包含位标志值。第一个枚举值用0隐式初始化,第二个用1显式初始化,其余的是通过将<<=1(左移位运算符,基本上相当于乘以2)应用于前一个值来初始化,并且将为2 ,4,8 gMyTagVarbitwise OR运算符组成。您可能希望熟悉bitwise operations