Цитата(Rst7 @ Jul 24 2009, 16:32)

Неа. Он передает там нолики (т.к. это unsigned). Но, т.к. переменная неинициализированна, то он имеет полное право забить болт на этот and. Например, считая, что в регистр уже загруженно правильное значение, не превышающее 256 (если бы перед этим была загрузка непосредственного значения или LBZ из озу).
При компиляции функции неизвестно, инициализированное будет передано значение или нет. Поэтому, по крайней мере при
Xuint32 d=0xFFFFFD00 + Data;
компилятор должен провести расширение Data до Xuint32. Я так думаю.
А то, что вы пишете, очень напоминает работу IAR с bool из
вот этой ветки. За единственным исключением - там программист применил хитрый финт ушами, чтобы добиться подобного.
Поэтому я всё же версию с неправильной интерпретацией параметра printf. Ждём топикстартера

ЗЫ. И интересно на всякий случай посмотреть на объявление Xuint8. Вдруг это пресловутый uint_least8_t?
Если бы я знал, что такое электричество...