Вы должны думать об этом с точки зрения писателя - знайте свою аудиторию. Таким образом, есть несколько "аудиторий", чтобы рассмотреть.
Во-первых, классический программист на Си, который замаскировал всю свою жизнь и мог делать это во сне.
Во-вторых, это новичок, который понятия не имеет, что все это такое, и прочее. Они программировали php на своей последней работе и теперь работают на вас. (Я говорю это как новичок, который делает php)
Если вы напишите, чтобы удовлетворить первую аудиторию (то есть битовую маску на весь день), вы сделаете их очень счастливыми, и они смогут поддерживать код с завязанными глазами. Тем не менее, новичку, вероятно, придется преодолеть большую кривую обучения, прежде чем они смогут поддерживать ваш код. Им нужно будет узнать о бинарных операторах, о том, как вы используете эти операции для установки / очистки битов и т. Д. Новичок почти наверняка обнаружит ошибки, поскольку он / она выполняет все приемы, необходимые для того, чтобы заставить это работать.
С другой стороны, если вы пишете, чтобы удовлетворить вторую аудиторию, новичкам будет легче поддерживать код. Им будет легче проскальзывать
flags.force = 0;
1012 * чем *
flags &= 0xFFFFFFFE;
и первая аудитория просто рассердится, но трудно представить, что они не смогут проглотить и поддерживать новый синтаксис. Просто намного сложнее облажаться. Новых ошибок не будет, потому что новичку будет легче поддерживать код. Вы просто получите лекции о том, что «в свое время вы нуждались в твердой руке и намагниченной игле, чтобы устанавливать биты ... у нас даже не было битовых масок!» (спасибо XKCD ).
Поэтому я настоятельно рекомендую использовать поля над битовыми масками, чтобы обеспечить безопасность нового кода.