приведение и указатель на синтаксис объекта в c

#c #c 11

Вопрос:

У меня есть следующий вызов функции Read(void *lpBuf, UINT nCount) , и я был сбит с толку синтаксисом, в котором она вызывается из другой функции, которая пытается прочитать буфер типа Byte

Определение функции:

 UINT CFileWave::Read(void *lpBuf, UINT nCount)
{
    return m_File.Read(lpBuf, nCount);
}
 

Объявление функции в другой функции:

 #define SIZE_PAGE           528l

RiffWav m_sWave;
CWav* pParent;
typedef unsigned char       BYTE;
WavFile.Read((BYTE*)amp;(pParent->m_sWave), SIZE_PAGE);

 

RiffWav-это заголовок type-def, который содержит информацию о файле wav, а CWav-это класс, который выполняет всю работу по настройке переменных внутри заголовка Riff Wav.

Мой вопрос в том, что (BYTE*)amp;(pParent->m_sWave) переходит в функцию Read()

Комментарии:

1. Это оценивается как (BYTE*)(amp;(pParent->m_sWave)) , поэтому он принимает адрес и перебирает тип методом перебора. Кстати, это не очень хороший код на C .