Правила программирования на С и С++. Главы 7-8
Страница 5. Для битового поля размером 1 бит должен быть определен тип unsigned


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 всегда не выполняется.

 
« Предыдущая статья   Следующая статья »