问题描述
- WAV音频文件读取问题,
-
在读取程序中有这样一行代码看不懂什么意思。struct wav_struct //WAV文件结构体申明
{unsigned long file_size; //文件大小
unsigned short channel; //通道数
unsigned long frequency; //采样频率
unsigned long Bps; //Byte率
unsigned short sample_num_bit; //一个样本的位数
unsigned long data_size; //数据大小
unsigned char data; //音频数据 ,这里要定义什么就看样本位数了
};
struct WAV;
fs.seekg(0x2c);fs.read((char *)WAV.data, sizeof(char) WAV.data_size);
最后一行这里 sizeof(char)*wav.data_size这里的* 号是什么作用?申明中是 unsigned long data_size; 搞不懂。
为什么不可以直接这样子:
fs.read((char *)WAV.data, sizeof(WAV.data_size));
大神帮帮忙。
解决方案
wav.data_size应该就可以了。char的大小就是1
解决方案二:
这是是类型转换,在不同的操作系统里面的long大小不一样的,但是char是一样的。
时间: 2024-09-20 07:49:08