2 baidu 28353525 baidu_28353525 于 2015.05.25 11:17 提问

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));
大神帮帮忙。

2个回答

devmiao
devmiao   Ds   Rxr 2015.05.25 11:19

wav.data_size应该就可以了。char的大小就是1

baidu_28353525
baidu_28353525 你好,这样子就可以的?fs.read((char *)WAV.data, sizeof(WAV.data_size)); 源代码中的是什么意思,还没有搞懂,它那样子编写是为什么。
2 年多之前 回复
baidu_28353525
baidu_28353525 你好,这样子就可以的?fs.read((char *)WAV.data, sizeof(WAV.data_size)); 源代码中的是什么意思,还没有搞懂,它那样子编写是为什么。
2 年多之前 回复
u012377333
u012377333   Rxr 2015.05.25 18:57

这是是类型转换,在不同的操作系统里面的long大小不一样的,但是char是一样的。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!