Страница 5 из 74
86. Для битового поля размером 1 бит должен быть определен тип unsigned.
После того, как ANSI С позволил назначать битовому полю знаковый тип, мне доводилось видеть код, подобный:
struct fred{
int i : 1;}a_fred;
Возможными значениями являются 0 и -1. Оператор типа: #define TRUE 1// ...
if( a_fred.i == TRUE )
// ...
не будет работать, потому что поле a_fred.i может иметь значение 0 или -1, но оно никогда не будет равняться 1. Следовательно, оператор if всегда не выполняется.