#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 .