Проверьте все битовые поля в C одновременно
Допустим, у меня есть структура C, определенная как
struct data {
/* some memebers */
int flag_a:1;
int flag_b:1;
int flag_c:1;
/* some other members */
}
Есть ли способ воспользоваться преимуществами битовых полей, представляемых в памяти как одно целое, и записать условиеs.flag_a | s.flag_b | s.flag_c
как более простое выражение, такое какs.flags
?
Или умный компилятор, такой как GCC, сможет это сделать?
Редактировать: Чтобы прояснить ситуацию: я ищу портативный способ проверки всех устанавливаемых флагов без явного тестирования каждого из них в отдельности.