Цитата(zltigo @ Mar 2 2008, 17:57)

Вы на верном пути

просто я совершенно неподумав

"+" в примере поствил, но сути это не меняет - смотрим другие, которые ниже по приоритету, чем ">>":
с = HIBYTE( a | b );
Как эффект?
Да, согласен. Хотя я не помню, чтоб пользовался вычислениями в параметре макросов, скобки обязательно нужны. Спасибо

Одним потенциальным затыком меньше
Думаю, вот так будет правильно, учитывая, что "...Маски совершенно лишние..."
Код
/* Utils */
#define MAKEUINT16(byte_h, byte_l) ((UINT16)(((UINT16)((byte_h) << 8))|(UINT16)(byte_l)))
#define HIBYTE(word) ((UINT8)((word) >> 8))
#define LOBYTE(word) ((UINT8)word)
#define MAKEUINT32(word_h, word_l) ((UINT32)(((UINT32)((word_h) << 16))|(UINT32)word_l))
#define HIWORD(dword) ((UINT16)((dword) >> 16))
#define LOWORD(dword) ((UINT16)dword)