[P&AM Lab] Пример для разбора исходного кода - cat(1) из BSD 4.2
Kargin Ruslan
karginrusja на mail.ru
Пт Дек 10 00:34:15 MSK 2010
В Чтв, 09/12/2010 в 22:35 +0300, Grigoriy A. Sitkarev пишет:
> Поэтому в нашем случае как делать, через #define или же enum - дело
> вкуса, ещё раз повторюсь.
>
> --
> Г.А.
>
Как тонко, но всё же есть рекомендации (хотя их можно и не соблюдать).
Они имеются именно потому, что код с enum проще читать и разбирать в
отладчике: комбинация битовых полей действительно не будет светится
именем, но для разбора кода в отладчике наиболее интересны моменты,
когда проверяется установка того или иного бита, а её результат будет
светится именем.
Далее, флаги, вообще говоря, можно считать связанными константами, и
тогда для них действует рекомендация "Enums are preferred when defining
several related constants" (linux kernel coding style).
Использование же макросов считается устаревшим стилем из-за проблем,
которые они обычно с собой несут, хотя в данном случае их нет. Подробнее
можно почитать в 1.4 и 1.5 книги Б.Керниган, Р. Пайк. "Практика
программирования".
P.S. Надо бы тут заканчивать, а то положим список =)
Подробная информация о списке рассылки Lab