哪些变量可以称为标志变量?

时间:2011-02-15 16:01:12

标签: language-agnostic variables terminology

我偶尔会在变量的上下文中遇到flag这个词,我对它有了自己的理解,但我仍然希望看到一个明确的定义。

4 个答案:

答案 0 :(得分:3)

这通常是一个私有变量,由其他成员(属性,方法)使用,作为跟踪和确定在多个行动过程中进行选择的状态的便捷方式。

这些通常是(但不总是)布尔值或枚举值。

例如,您可能有一个名为IsDataLoaded的布尔“标志”和一个名为ShowResults()的方法。在ShowResults()方法的正文中,您可以检查IsDataLoaded标记的值,如果是true,则只显示结果。如果false,您首先调用LoadData()方法。加载数据后,LoadData()方法会将标记从false更改为true

使用枚举和位掩码,“flags”可以是包含在单个值中的一组设置或选项。例如,如果您定义以下(C#):

enum foo
{
    CaseSensitive = 1,
    Use24HourTime = 2,
    IgnoreRegistrySetting = 4,
    LoadFoosAndBarsSeparately = 8
}

您可以使用13之类的简单值指定设置,或使用CaseSensitive | IgnoreRegistrySetting | LoadFoosAndBarsSeparately指定“标记”。

在.NET中,有一个System.FlagsAttribute属性:

  

System.FlagsAttribute 表示可以将枚举视为位字段;也就是说,一组标志。

答案 1 :(得分:1)

通常但不一定是布尔值,使用标志变量来确定特定数据片段中的哪一个有限的离散组集合。

在普通语言中,您可能会标记一段数据,以表明它是一只猫。或者标记一份工作申请,说它不完整。

在C和C派生语言中,标志变量通常是枚举类型。

在CPU上,您通常会获得由先前操作设置的单位状态标志。例如。您可以将两个数字加在一起,然后根据是否应该从最顶部的位传送一个位来设置或取消设置'进位'标志。

答案 2 :(得分:1)

  

标志变量,最简单的形式,   是您定义的变量   值,直到某些条件为真,in   在哪种情况下你改变了变量   值。这是一个可以使用的变量   控制功能的流程或   声明,允许您检查   你的功能有一些条件   进行。

计算机实施

  

任何变量或常量   数据可以用作标志。您可以   把存储位置想象成一个   旗杆。存储在其中的值   变量传达了一些意义和你   可以把它想象成旗帜。

     

示例可能是名为的变量:   作为角色数据的性别   类型。通常存储这两个值   变量中有:'F'和'M'   意思是女性和男性。然后,   在我们可能的程序中的某个地方   看看变量来做一个   决定:

if gender equals 'F'
  display "Are you pregnant?"
  get answer from user store in pregnant variable
  

看着旗帜意味着比较   变量中的值到另一个变量   值(常数或值)   另一个变量)使用关系   运算符(在上面的例子中:   平等)。控制结构是   通过使用测试“控制”   表达式,通常是布尔值   表达。因此,国旗的概念   “查看”变量中的值   并将其与另一个值进行比较   理解所有方面的基础   控制结构工作。

答案 3 :(得分:1)

该字通常用于描述位字段:即某种整数变量,每个位具有特定含义。 Windows平台API广泛使用它们。