windef.h
готовлюсь к экзамену по программированию... в windef.h нашёл такой вот макрос:
#define MAKEWORD(a, b) ((WORD)(((BYTE)((DWORD_PTR)(a) & 0xff)) | ((WORD)((BYTE)((DWORD_PTR)(b) & 0xff))) << 8))
Объясните, пожалуйста, зачем ТРИ приведения типа?
Особенно порадовало сначало побитовое И с оставление разрядов только в младшем байте, а потом приведение к этому самому байту...
пробовал выкинуть приведение (DWORD_PTR),проверил на числах типа short,int, char... результаты идентичные...
#define MAKEWORD(a, b) ((WORD)(((BYTE)((DWORD_PTR)(a) & 0xff)) | ((WORD)((BYTE)((DWORD_PTR)(b) & 0xff))) << 8))
Объясните, пожалуйста, зачем ТРИ приведения типа?
Особенно порадовало сначало побитовое И с оставление разрядов только в младшем байте, а потом приведение к этому самому байту...
пробовал выкинуть приведение (DWORD_PTR),проверил на числах типа short,int, char... результаты идентичные...
