最近在一网站上看见一个Wave头文件的代码,可是其中有几句代码我不知道是什么意思,请大虾们帮我解释一下。
代码为:
CreateWav(WORD wChannels, WORD wResolution, long lRate, String strFileName)
{ typedef struct _TWavHeader
{ long rId;
long rLen;
long wId;
long fId;
long fLen;
WORD wFormatTag;
WORD nChannels;
nSamplesPerSec;
long nAvgBytesPerSec;
WORD nBlockAlign;
WORD wBitsPerSample;
long dId;
long wSampleLength;
}TWavHeader;
TWavHeader wh;
wh.rId = 0x46464952;
wh.rLen = 36;
wh.wId = 0x45564157;
wh.fId = 0x20746d66;
wh.fLen = 16;
wh.wFormatTag = 1;
wh.nChannels = wChannels;
wh.nSamplesPerSec = lRate;
wh.nAvgBytesPerSec = wChannels*lRate*(wResolution / 8);
wh.nAvgBytesPerSec = wChannels*lRate*wResolution / 8);
wh.wBitsPerSample = wResolution;
wh.dId = 0x61746164;
wh.wSampleLength = 0;
int nHandle = FileCreate(strFileName);
FileSeek(nHandle, 0,0);
FileWrite(nHandle, &wh, sizeof(wh));
FileClose(nHandle);
}在这些代码里面,用红色标记的几句我看不懂是什么意思,尤其是那几个数字,不知道是什么意思。我看过Wav格式,wh.rId、wh.wId、wh.fId、wh.dId应该都为字符串常量才对,不知道这些数字与那些字符串之间有什么联系