开放原始码的回收与再利用内容摘要:
相同 其函式或類別的介面長相就會和你所需的不同 介面中的元素會較我們所需的為多 因為拆解的關係,有許多編譯錯誤會來自於未含入介面中額外多出的元素 去除一些不必要的元素,並且重新整理這些介面的長相 得到第一個可以編譯的版本 做好心理建設,面對混亂 就算張開眼睛也仍然看不見 別人的程式碼習慣風格和你必然不同 不要浪費時間在重新整理上 請先做好心理建設,讓自己能夠面對自己覺得混亂的程式碼,視眼前之混亂如無物 有空閒時間,再套用 refactoring的技巧,逐步的改善回收程式的結構 跨出成功的第一步 成功的達成第一個里程碑後,便逐一的依照同樣的方式加入 後續的里程碑達成的速度會愈來愈快 Case Study: 視訊檔案的格式探測 需求:檢查給定的視訊檔案是否屬於特定的數種格式 限制: C/C++,在 Win32上執行,編譯後大小必須在100KB以內 在網路上搜尋可用的原始碼,並選擇最適合的 ffmpeg有許多人使用,而且程式語言是 C,在 Win32平台上編譯不致於有太多問題 ffmpeg的 libavformat有提供此類的功能 了解程式架構,拆解出自己所需的部份 由上而下了解程式架構 先找到一段應用 libavformat的範例 av_register_all()。 // Open video file if(av_open_input_file(amp。 pFormatCtx, (char *) fileName, NULL, 0, NULL) !=0 ) return false。 // Retrieve stream information if(av_find_stream_info(pFormatCtx)0) return false。 // Couldn39。 t find stream information // Dump information about file onto standard error dump_format(pFormatCtx, 0, (char *) fileName, false)。 展開追蹤原始碼 善用 grep工具( Win32上可用 Windows Grep) 逐一檢查 dump_format()前的各個函式 void av_register_all(void) { static int inited = 0。 if (inited != 0) return。 inited = 1。 avcodec_init()。 avcodec_register_all()。 mpegps_init()。 mpegts_init()。 ... /* 一堆 xxxx_init() */ 採 DFS展開 -深度優先搜尋 接下來往 mpegps_init()展開 ,利用 grep找出它在 int mpegps_init(void) { ifdef CO。开放原始码的回收与再利用
本资源仅提供20页预览,下载后可查看全文
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。
相关推荐
开放式基金受益凭证交易平台
5 1 B造市商 B 2020 8350084 2 C造市商 B 2020 8360845 D造市商 B 2020 8385935 到價 客戶帳號 B/S 價格 數量 委託時間 97998 S 1000 9000270 5585596 S 31 1000 9001000 5585596 S 2020 9001010 5585596 S 32 2020 9001014
开学一个月来,全体师生焕发精神,团结协作,克服校园加固
学生学 自主学 合作学 质疑学 小组白板展示 电子白板互动 学生敢讲会讲 【 要求四 】 注意多角度落实小组评价。 评价 关注 角度 预案完成(巡查 互查) 助学氛围(分工 协作) 展示情况(团体 个体) 质疑价值(有疑 会疑) 检测效果(当堂 课后) 【 要求五 】 学科组长严格把关教学设计, 组内统一整合应用。 统一确定上课内容 统一学讲课堂结构范式 组长主备组内统一整合应用 三