Цитата(Shedon @ Oct 15 2006, 20:48)

Собственно сабж, был у меня кусок программы:
Кусок явно ошибочный.
*p & 0x80 может принимать значения либо 0 либо 0x80, из последнего в 1 бит умещается только последний бит, т.е. 0.
можно написать
SD = (*p & 0x80) != 0, тогда получится. Или SD = (*p & 0x80) ? 1 : 0; или как Вы придумали.
Для окончательного понимания предлагаю такой вариант:
Код
struct {
uint8_t tmp:8;
} var;
var.tmp = 0xFF;
++var.tmp;
чему будет равен var.tmp?