Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия, Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки
Последний раз редактировалось Circiter 19.07.2011, 15:42, всего редактировалось 4 раз(а).
Ну вот конкретный пример: программулька, которая ищет в текущем каталоге все файлы с атрибутами "скрытый" и "только для чтения". Обратите внимание на комбинирование целочисленных флажков faReadOnly и faHidden.
ifFindFirst('*.*', Attributes, Data)=0then begin repeat if Data.Attrand Attributes = Data.Attrthen
MainForm.Filenames.Items.Add(Data.Name); untilFindNext(Data)<>0; FindClose(Data); end;
N.B., Все флажки типа faReadOnly, faDirectory и т.д. -- суть степени двойки и поэтому "не пересекаются" (побитовое И между любыми двумя флажками дает ноль). :)
Yuri Gendelman
Re: C# порядок логичeских операций
20.07.2011, 04:20
Последний раз редактировалось Yuri Gendelman 20.07.2011, 04:21, всего редактировалось 1 раз.
Если байтовые, используемые в роли флажков, то -- можно, но смотрится как-то нелепо.
Об этом и было замечание Circiter'а насчет дельфи-кодеров. Привычка использовать '+' вместо "or-ed combination" не столько нелепа, сколько опасна: можно случайно включить в сумму константу для комбинации битов. А некоторые (юные?) программисты, копирующие приемы гуру, могут и не понимать, в чем разница.