№1
Работа с битовой маской
#define FOO_FLAG 1
#define BAR_FLAG 2
#define BAZ_FLAG 4
#define QUUX_FLAG 8
/* Проверяем - установлен ли флаг? */
if (my_flags & FOO_FLAG) {
/* do something */
}
/* Устанавливает флаг */
my_flags |= QUUX_FLAG;
/* Отменяем флаг */
my_flags &= ~BAR_FLAG;
Источник:
evan.prodromou.name
evan.prodromou.name