Сообщение от _grey_
|
что такое __packed
|
Расписывать все некогда. _packed означает что данные на которые указывает pData не выровнены по границе слова. *((__packed DWORD *)pData) = RX_DATA; - Реально будет 4 записи по 1 байту.
pData += 4; - потому что указатель BYTE *pData, а читаем мы по 32 бита.
(cnt + 3) / 4 объяснить сложнее. Хотя причина та же - читаем по 4 байта за раз, а cnt в байтах. Если cnt==0, не читаем ничего, если 1,2,3,4 - читаем 1 раз, если 5,6,7,8 - 2 раза. Ну и т.д. Удачи в разборах.
Хотя в такую погоду лучше на природу! Я лично уже вещи собираю