青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

從wave文件的讀寫看程序中struct的設計


在windows中,對于wave音頻格式,有如下的一系列結構:
typedef struct waveformat_tag 
{
    WORD    wFormatTag;        
/**//* format type */
    WORD    nChannels;         
/**//* number of channels (i.e. mono, stereo, etc.) */
    DWORD   nSamplesPerSec;    
/**//* sample rate */
    DWORD   nAvgBytesPerSec;   
/**//* for buffer estimation */
    WORD    nBlockAlign;       
/**//* block size of data */
}
 WAVEFORMAT;

typedef 
struct pcmwaveformat_tag 
{
    WAVEFORMAT  wf;
    WORD        wBitsPerSample;
}
 PCMWAVEFORMAT;

struct TWavHeader
{
    
char rId[4];                //標志符(RIFF)
    DWORD rLen;         //數據大小,包括數據頭的大小和音頻文件的大小
    char wId[4];              //格式類型("WAVE")
    char fId[4];                //"fmt"
    DWORD fLen;         //Sizeof(PCMWAVEFORMAT)
    PCMWAVEFORMAT wavFormat;
    
char dId[4];              //"data"
    DWORD wSampleLength;    //音頻數據的大小
}
;

采用這樣的結構寫的音頻文件,文件頭會有如下的結果:

不難發現,第0020行明顯多出幾個字節。這樣造成聲音文件無法播放出來。

從結構定義角度來看,也不難發現PCMWAVEFORMAT結構中,WAVEFORMAT結構前四個成員已經4字節對齊了,最后一個成員nBlockAlign只占用兩字節,按照字節對齊規則,需要在填充兩個無效字節,從而保證到4字節對齊;PCMWAVEFORMAT結構還是采用4字節對齊,因此只占用兩字節的
最后一個成員wBitsPerSample還需要兩字節補齊,因此才有了上圖的字節分布。

解決方法就是采用緊縮結構,不允許字節對齊。

從這個親身經歷來看,字節非對齊的結構也是一種潛在的bug,程序中設計的各種結構盡量保持字節對齊是一種好的習慣。

posted on 2008-06-16 11:00 Wealth 閱讀(1972) 評論(4)  編輯 收藏 引用 所屬分類: C++

評論

# re: 從wave文件的讀寫看程序中struct的設計 2008-06-16 11:21 Kevin Lynx

有道理,對于用struct寫文件這種情況,很容易因為struct的字節對齊問題導致想不到的BUG。尤其是采用直接將struct以二進制方式寫入文件的方式寫文件。
  回復  更多評論   

# re: 從wave文件的讀寫看程序中struct的設計 2008-06-17 19:56 Wealth

@Kevin Lynx

對呀,這些bug一般還很難找。  回復  更多評論   

# re: 從wave文件的讀寫看程序中struct的設計 2008-06-23 01:10 R2仔

用 #pragma pack(2) 來改變字節對齊設置也可以吧  回復  更多評論   

# re: 從wave文件的讀寫看程序中struct的設計 2008-06-24 14:55 Wealth

@R2仔
在這個應用中是可以的。
但我們在這里討論的不是幾個字節對齊的問題,而是如何避免由于潛在的機制而導致的bug  回復  更多評論   

<2025年9月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

導航

統計

常用鏈接

留言簿

隨筆分類(8)

隨筆檔案(8)

文章分類

Around Web

CoBlog

Develop Usage Link

搜索

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            在线观看91精品国产入口| 国产精品毛片高清在线完整版| 久久夜色精品亚洲噜噜国产mv| 亚洲破处大片| 亚洲日韩欧美视频一区| 美女图片一区二区| 亚洲激情网站| 日韩视频免费观看高清在线视频| 国产精品一区2区| 先锋a资源在线看亚洲| 亚洲一区精品电影| 国产精品国产馆在线真实露脸| 欧美激情成人在线| 91久久精品国产| 欧美乱人伦中文字幕在线| 日韩一级精品| 久久人人97超碰国产公开结果| 国产日韩欧美中文| 久久久91精品国产一区二区精品| 欧美在线免费视屏| 亚洲精品国产精品乱码不99按摩| 欧美国产欧美亚洲国产日韩mv天天看完整 | 一区在线视频| 老司机免费视频一区二区| 亚洲久久一区| 亚洲欧美美女| 在线成人av| 国产精品久久久久影院亚瑟| 亚洲国产精品成人va在线观看| 伊人久久噜噜噜躁狠狠躁| 欧美日韩视频在线一区二区 | 一本色道久久综合一区| 国产精品va在线播放我和闺蜜| 亚洲精品日产精品乱码不卡| 欧美日韩三级| 久久夜色精品国产欧美乱极品 | 欧美国产第一页| 欧美一区国产一区| 亚洲在线视频观看| 一本大道久久精品懂色aⅴ| 亚洲高清自拍| 麻豆精品一区二区av白丝在线| 亚洲日本免费| 亚洲国产日韩欧美在线图片| 国产区在线观看成人精品| 欧美午夜精品久久久久久人妖 | 国模 一区 二区 三区| 欧美日本三区| 国产欧美日韩麻豆91| 国产亚洲一区二区在线观看| 国产在线不卡视频| 国产欧美日韩在线观看| 国产精品私拍pans大尺度在线| 欧美肥婆在线| 欧美日韩国产在线播放网站| 国产精品毛片va一区二区三区 | 亚洲影视中文字幕| 亚洲一二三区视频在线观看| 欧美在线free| 欧美日韩国产在线播放| 国产欧美精品久久| 亚洲人成网站精品片在线观看| 亚洲乱码日产精品bd| 午夜视黄欧洲亚洲| 欧美激情精品久久久久| 亚洲少妇在线| 免费成人在线观看视频| 国产精品视频区| 日韩网站免费观看| 久久精品盗摄| 一区二区欧美视频| 欧美日韩1区2区| 最新亚洲视频| 欧美国产欧美亚洲国产日韩mv天天看完整 | 欧美在线观看一二区| 欧美99在线视频观看| av成人福利| 久久婷婷丁香| 国产在线高清精品| 午夜精品999| 9久草视频在线视频精品| 欧美有码在线视频| 国语自产精品视频在线看抢先版结局| 欧美日韩一区二区视频在线观看| 国产欧美精品一区二区色综合| 亚洲激情视频在线| 六月婷婷一区| 欧美mv日韩mv国产网站| 亚洲高清123| 欧美大片免费观看| 欧美国产欧美综合| 亚洲小说欧美另类婷婷| 9l视频自拍蝌蚪9l视频成人| 国产精品第2页| 午夜精品久久久久| 欧美一级夜夜爽| 亚洲激情视频在线播放| 一本一本a久久| 国内精品久久久久久久影视蜜臀 | 国产精品成人一区二区艾草| 亚洲天堂av在线免费观看| 夜夜嗨av一区二区三区中文字幕 | 久久国产福利| 亚洲毛片一区二区| 久久精品国产视频| 国产日韩欧美中文| 一区二区三区在线免费观看| 欧美成人国产va精品日本一级| 久久香蕉国产线看观看网| 一二三区精品| 亚洲午夜成aⅴ人片| 伊人久久综合97精品| 亚洲每日更新| 国产欧美一区二区在线观看| 蜜臀99久久精品久久久久久软件| 欧美激情精品久久久六区热门| 欧美淫片网站| 国产日韩欧美日韩大片| 亚洲砖区区免费| 亚洲曰本av电影| 国产精品第一区| 亚洲夜间福利| 久久久久久有精品国产| 国产精品v日韩精品| 亚洲午夜一区| 性xx色xx综合久久久xx| 国产精品va在线| 亚洲欧美综合| 久久久999精品| 亚洲国产精品专区久久| 久久艳片www.17c.com| 亚洲国产精品黑人久久久 | 亚洲视频一起| 性欧美1819sex性高清| 欧美私人啪啪vps| 亚洲性感激情| 99在线热播精品免费| 欧美在线播放一区二区| 久久人人爽人人爽爽久久| 国产精品欧美久久| 亚洲免费一在线| 久久男人资源视频| 亚洲精品美女久久久久| 国产精品成人午夜| 久久久久久久久岛国免费| 亚洲欧洲在线视频| 欧美一二三区精品| 亚洲第一精品夜夜躁人人躁| 欧美日韩1区| 欧美久久电影| 欧美一区高清| 小嫩嫩精品导航| 日韩视频―中文字幕| 欧美 日韩 国产在线| 亚洲欧美国产va在线影院| 亚洲人线精品午夜| 一区二区三区在线观看欧美| 国产亚洲人成网站在线观看| 欧美日韩国产综合网| 欧美国产先锋| 欧美高清在线视频| 欧美freesex交免费视频| 久久久夜精品| 美日韩精品免费| 欧美成人官网二区| 欧美韩国日本一区| 另类图片国产| 日韩午夜激情电影| 亚洲伦伦在线| 午夜精品久久久久久99热| 性色av一区二区三区红粉影视| 亚洲一区视频在线| 久久久青草婷婷精品综合日韩 | 免费欧美高清视频| 欧美国产先锋| 一级日韩一区在线观看| 午夜免费久久久久| 你懂的成人av| 亚洲人精品午夜在线观看| 亚洲一区视频在线观看视频| 亚洲国产日韩欧美综合久久 | 99视频在线观看一区三区| 亚洲第一页在线| 久久另类ts人妖一区二区| 久久精品一区二区三区不卡牛牛 | 欧美va天堂| 欧美高清hd18日本| 亚洲一区www| 久久精品一区二区三区四区| 亚洲国产一区二区a毛片| 亚洲日本在线观看| 午夜精彩视频在线观看不卡| 久久成人国产精品| 欧美—级a级欧美特级ar全黄| 欧美日韩精品一二三区| 国产精品日日摸夜夜添夜夜av| 欧美电影美腿模特1979在线看| 欧美精品久久一区| 国外成人在线视频网站| 亚洲精品乱码久久久久久蜜桃91 |