特定位数可以称为标志吗?

时间:2016-05-05 20:07:37

标签: c++ computer-science naming

旗帜枚举:

enum class AbilityFlag
{
  FLY = 1 << 0, // 0x01
  WALK = 1 << 1, // 0x02
  JUMP = 1 << 2, // 0x04
  SWIM = 1 << 3, // 0x08
};

但如果它是特定的位,它可以被称为标志吗?

enum class AbilityFlag
{
  FLY = 0, // bit no. 0
  WALK = 1, // bit no. 1
  JUMP = 2, // bit no. 2
  SWIM = 3, // bit no. 3
};

或者只有表示位组合的值(如第一个例子中)被称为&#34; flag&#34;?

1 个答案:

答案 0 :(得分:2)

第一个示例中的类型称为位字段标记字段。每个常数由一位表示。这意味着您可以使用按位运算符组合一个变量中的不同设置,例如ability = WALK | JUMP。稍后您可以使用按位来提取单个属性,例如canJump = ability & JUMP这在您的第二个枚举中是不可能的,其中WALK | JUMP具有与{{1}相同的值}。

任何这些类型的变量都可以称为标志。通常,术语 flag 用于表示某些属性的任何值的变量值变量。通常,布尔变量用作标志。