2013-08-03 12 views
5

Niedawno zacząłem uczyć się C++ i montażu i natknąłem się na LOBYTE, kiedy zdemontowałem coś w IDA i obejrzałem funkcję w pseudo kodzie.C++ LOBYTE. Proszę wyjaśnić więcej?

Czytanie MSDN: http://msdn.microsoft.com/en-us/library/windows/desktop/ms632658(v=vs.85).aspx

ja wciąż nie understand.What jest niski bajt zamówienie? Czy ktoś może mi powiedzieć więcej o tym, do czego służy i jaki jest jego przykład użycia w języku C++?

+0

Myślę, że mogą być związane z [Endianess] (http://teaching.idallen.com/cst8281/10w/notes/110_byte_order_endian.html). Jednak nie jestem pewien. Chodzi mi o to, dlaczego Microsoft nie użyłby właściwego słowa? – Jocke

+3

To pytanie zostało wysłuchane. Zamknij go, zaznaczając odpowiedź. Kliknij pole wyboru po lewej stronie posta, który Ci pomógł. –

Odpowiedz

18

LOBYTE i HIBYTE wraz z HIWORD i LOWORD, makra są wykorzystywane wydobyć słowo lub bajt z większego zbioru bajtów/słów.

Jako przykład powiedzmy, że masz dwa bajty 24 FF, które tworzą słowo. Ta wartość jest przechowywana w programie unsigned short ushortvar. Teraz możesz wyodrębnić jeden z dwóch bajtów za pomocą HIBYTE(ushortvar) lub. Pierwsza będzie równa 0x24, a druga będzie równa 0xff. Możesz zrobić to samo z unsigned int, aby wyodrębnić jedno ze słów, używając odpowiednio LOWORD .

+0

Widzę, dziękuję za szybką odpowiedź. – Imaginarys

Powiązane problemy