Я прохожу учебник по программированию в C и читаю об объявлении "enum".
В нем приведен пример использования enum для определения нескольких флагов стилей текста.
https://www.programiz.com/c-programming/c-enumeration
Указывает, что использование побитового оператора ИЛИ "|" является средством определения одним словом, какими могут быть комбинированные стили текста.
Мой вопрос: не будет ли совпадений, если бы это был единственный способ объединить флаги стиля, если в перечислении использовалось слишком много флагов?
Например, если у меня есть только 8-битный компьютер, и я выдаю объявление enum, например
enum exampleFlag {
style1 = 1
style2 = 2
style3 = 4
style4 = 8
style5 = 16
style6 = 32
style7 = 64
style8 = 128
style9 = 255
};
int main() {
int myDesign = style9 | style1;
// 00000001
// | 11111111
// ___________
// 11111111
printf("%d", myDesign);
return 0;
}
OUTPUT
255
И затем я хочу проверить каков стиль для текста, но тогда style9 является эквивалентом для всех стилей, действующих одновременно, так что тогда ... не вызывает ли это проблемы?
Учебное пособие не собирается go до глубины души, но я хотел задать этот вопрос, поскольку мне кажется, что способ, которым это работает, вызовет частичное совпадение стилей, если числа будут выбраны неправильно при объявлении перечисления.
Но, возможно, Я неправильно понимаю, как действительно работает декларация enum.