объяснений я пытался понять код распределителя памяти, который реализует таНос и я наткнулся на этом макросРаспределителя памяти макрос
// get the size of the block from header
#define GET_SIZE(p) (GET(p) & ~0x7)
Комментарий проясняет, что она делает, но я не могу понять, что это делает или как он работает. Может кто-нибудь объяснить это подробно?
Он извлекает все, кроме 3 самых правых двоичных цифр значения, возвращаемого get (p). Грубо получить (p)% 8 сделать быстрее. –
@ArifBurhan Так что же делает ~ 0x7? Я имею в виду, какова логика возвращения 3 самых правых цифр? – Krishh
@ArifBurhan «сделано быстрее» - если вы используете компилятор 1970-х годов, возможно, –