Какие переменные можно назвать флаговыми переменными? - PullRequest
0 голосов
/ 15 февраля 2011

Время от времени я сталкиваюсь с термином flag в контексте переменных, и у меня есть собственное понимание этого, но все же я хотел бы увидеть четкое определение.

Ответы [ 4 ]

3 голосов
/ 15 февраля 2011

Обычно это закрытая переменная, которая используется другими членами (свойствами, методами) в качестве удобного способа отслеживать и определять состояние для выбора из более чем одного курса действий.

Это часто, ноне всегда, логические значения или значения перечисления.

Например, у вас может быть логический «флаг» с именем IsDataLoaded и метод с именем ShowResults().В теле метода ShowResults() вы должны проверить значение флага IsDataLoaded, а если оно равно true, просто показать результаты.Если false, вы сначала вызовете метод LoadData().После загрузки данных метод LoadData() изменит флаг с false на true.

Используя перечисления и битовые маски, «флаги» могут быть набором настроек или опций, содержащихся водно значение.Например, если вы определите следующее (C #):

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

Вы сможете указать настройки с простым значением, например 13, или указать «флаги» с помощью CaseSensitive | IgnoreRegistrySetting | LoadFoosAndBarsSeparately.

В .NET есть атрибут System.FlagsAttribute:

System.FlagsAttribute : Указывает, что перечисление можно рассматривать как битполе;то есть набор флагов.

1 голос
/ 15 февраля 2011

Это слово часто используется для описания битовых полей: то есть целочисленной переменной некоторого вида, для которой каждый бит имеет конкретное значение. API платформы Windows широко использует их.

1 голос
/ 15 февраля 2011

Флаговая переменная в простейшем виде, переменная, которую вы определяете, чтобы иметь один значение, пока какое-либо условие не станет истинным, в в каком случае вы меняете переменную значение. Это переменная, которую вы можете использовать контролировать поток функции или заявление, позволяющее проверить определенные условия в то время как ваша функция прогрессирует.

Компьютерная реализация

Любая переменная или константа, которая содержит данные могут быть использованы в качестве флага. Вы можете думать о месте хранения как флагшток. Значение хранится в переменная передает некоторый смысл, и вы может думать об этом как о флаге.

Примером может быть переменная с именем: пол, который имеет данные персонажа тип. Два значения обычно хранятся в переменной: «F» и «M» имеется в виду женщина и мужчина. Затем, где-то в программе мы могли бы посмотрите на переменную, чтобы сделать Решение:

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

Глядя на флаг, подразумевается сравнение значение переменной в другую значение (константа или значение в другая переменная) с использованием реляционного оператор (в нашем примере выше: равенство). Управляющие структуры «контролируется» с помощью теста выражение, которое обычно является логическим выражение. Таким образом, концепция флага «глядя» на значение в переменной и сравнивая его с другим значением фундаментальное понимание того, как все управляющие структуры работают.

1 голос
/ 15 февраля 2011

Часто, но не обязательно, логическая переменная флага используется для определения того, к какому из конечных дискретных групп наборов относится конкретный фрагмент данных.

На обычном языке вы можете пометить часть данных, чтобы сказать, что это кошка.Или пометьте приложение для работы, чтобы сказать, что оно неполное.

В языках, производных от C и C, переменная flag часто имеет перечисляемый тип.устанавливаются более ранними операциями.Например, вы можете добавить два числа вместе, после чего будет установлен или снят флаг «переносить» в зависимости от того, должен ли был быть перенесен бит из самого верхнего бита.

...