В старые времена компьютеров до того, как у них были компиляторы, они использовали для ввода значений в компьютеры с помощью ручных переключателей, каждый из которых представлял один бит.Теперь, поскольку типичные процессоры не имеют типа данных для одного бита, они обычно представлены с использованием целого байта, например, в C unsigned char
обычно.При обработке булевых значений не нужно учитывать их положение в значении.Кроме того, ряд операций со значениями bool приводит к единственному значению bool.
Насколько мне известно, термин flag происходит от флагов, регистрируемых в компьютерах, где каждый флаг представляет один бит.Однако с флагами они группируются по размерам в зависимости от размера регистра процессора.
Другое распространенное использование флага - с типами перечисления.При обработке значений флагов-перечислений необходимо учитывать их положение в значении.Кроме того, ряд операций со значениями флага перечисления приводит к значению флага перечисления, а не к одному значению bool.
Предположим, я пишу подпрограмму, которая может иметь одно из двух различных поведений.В общем, точнее ли называть этот аргумент «переключатель» или «флаг» или что-то еще?
Я бы не назвал это переключателем, поскольку это старая терминология, и я бы определенноне называйте это флагом.Я бы назвал это bool
.