У меня есть эта функция, которую я пытаюсь преобразовать, но я просто не могу понять, что происходит в некоторых частях кода.Может кто-нибудь помочь мне и объяснить код.Я просто хочу знать, что они делают с указателями.Есть несколько пустых комментариев в коде, где они чертовски работают с указателями, я просто не понимаю.
Любая помощь приветствуется.
WORD** m_Pixels;
int pixel(int x, int y)
{
if (x<0 || y<0 || x>=m_Width || y>=m_Height)
return -1;
WORD *pPixels = m_Pixels[y];
//
int count = *pPixels++;
int index = 0;
register int i;
if (count > 0)
{
i = count;
do {
//
index += *pPixels++;
if (x < index)
{
return -1;
}
//
index += *pPixels;
//
pPixels += *pPixels;
pPixels++;
//
index += *pPixels;
//
pPixels += *pPixels;
pPixels++;
if (x < index)
{
return pPixels[x-index];
}
} while (--i);
}
return -1;
}