• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    水滴石穿C語言之代碼檢查工具

    發布: 2008-3-10 15:03 | 作者: 楚云風 | 來源: 天極網 | 查看: 255次 | 進入軟件測試論壇討論

    領測軟件測試網

    概述

      PC-Lint是一個歷史悠久,功能異常強勁的靜態代碼檢測工具。它的使用歷史可以追溯到計算 編程的遠古時代(30多年以前)。經過這么多年的發展,它不但能夠監測出許多語法邏輯上的隱患,而且也能夠有效地幫你提出許多程序在空間利用、運行效率上的改進點,在很多專業級的軟件公司,比如Microsoft, PC-Lint檢查無錯誤無警告是代碼首先要過的第一關,我個人覺得,對于小公司和個人開發而言,PC-Lint也非常重要,因為基于開發成本考慮,小公司和個人往往不能拿出很多很全面的測試,這時候,PC-Lint的強勁功能可以很好地提高軟件的質量。

      功能

      1) PC-Lint是一種靜態代碼檢測工具,可以說,PC-LINT是一種更加嚴格的編譯器 ,不僅可以象普通編譯器那樣檢查出一般的語法錯誤,還可以檢查出那些雖然完全合乎語法要求,但很可能是潛在的、不易發現的錯誤。

      2) PC-lint不但可以檢測單個文件,也可以從整個項目的角度來檢測問題,因為C語言編譯器固有的單個編譯,這些問題在編譯器環境下很難被檢測,而PC-Lint在檢查當前文件的同時還會檢查所有與之相關的文件,可想而知,它會對我們有很大的幫助。

      3) PC-lint支持幾乎所有流行的編輯環境和編譯器,比如Borland C++從1.x到5.x各個版本、Borland C++ Build、GCC、VC,VC.net、 watcom C/C++、Source insight、intel C/C++等等,也支持16/32/64的平臺環境。

      4) 支持Scott Meyes的名著(Effective C++/More Effective C++)中說描述的各種提高效率和防止錯誤的方法。

      四步速成PC-Lint概述

      這么好的工具,當然是先拿起來用了再說,這里分為四步,保證你馬上可以使用PC-Lint了,當然,如果你上手以后,想細致深入學習這個工具,可以在網上查找相應的資料,另外在我的另一個系列文章《軟件開發的七種武器》中有一篇是講述 PC-Lint使用的,比這篇要深入細致一些,如有興趣,也可以看看。

      第一步:安裝&設置

      安裝和通常的軟件沒有什么不同。

      安裝結束后在PC-Lint安裝目錄下運行CONFIG.exe,各項設置簡要解釋如下:

      a) 第一步,給出PC-Lint的安裝路徑和選擇設置的保存文件。

      b) 第二步,選擇你所使用的C/C++編譯器:比如Visual C++ 6.x。

      c) 第三步,選擇內存模式:比如32 bit Flat Model。

      d) 第四步,選擇所使用的庫:比如MFC,OWL,等,可多選,在windows下開發的一般要選中windows 32 bit。

      e) 第五步,C++編程提出過重要建議的作者,選擇某作者后,他提出的編程建議方面的選項將被打開:比如Scott Meyers,可不選。

      f) 第六步,頭文件的設置:可在后面步驟中手工添加。

      第二步:整合PC-Lint到選定的編譯環境

      當你在上述第二步中選擇了編譯器后,可以在PC-Lint目錄下找到一個"env-選用的編輯環境.lnt"文件,比如對于Source insight 是env-si.lnt,對于vc6是env-vc6.lnt。

      打開此文件,根據上面的描述,配置你的編譯器,下面以VC6為例:

      ·選取菜單 tools | customize.....

      ·選取 Tools 標簽

      ·點按主對話框上方的虛線小方框 New

      ·輸入 name: PC-LINT

      ·輸入 Command: c:\lint\lint-nt.exe,假設安裝到此路徑

      ·輸入 Arguments: c:\lint\std.lnt ?(FilePath)?7)選擇 (x) Use Output Window

      ·Close

      ·完成后,在tools菜單下就會有一項PC-LINT選項。下面是TOOL配置圖:

    第三步:Lint單個C文件

      a) 打開一個C文件

      b) 運行第2)步集成上的PC-Lint菜單項

      c) LINT結果會在一兩秒之內出來。告警的解釋可參考LINT安裝目錄下MSG.TXT文件,打開文件,通過查找告警號碼定位,就可以看到比較詳細的說明。

      第四步:Lint多個C文件

      a) 在LINT軟件目錄下建立PRJLINT.LNT文件,文件的第一行是使用的LINT配置文件名,從第二行開始,列出想所有要LINT的*.C文件名,一行一個。如果要把結果輸出到文件,在前面加上一行"-os(文件名)"(例如:"-os(c:\lint\result.txt)")。樣例:YF_Config.lnt

      // 以下為自己想要進行Lint的.C文件,

      G:\src\tt\tt1.c

      G:\src\tt\tt2.c

      …

      b) 用2)介紹的方法在Source Insight"中介紹的方法增加一條"PC-LINT PROJECT"命令,所有設置與"PC-LINT"設置相同,除了

     、"Custom Commands"對話框中"RUN"編輯框的文字由"C:\LINT\LINT-NT.EXE filename.lnt %f"改為"C:\LINT\LINT-NT.EXE PRJLINT.LINT",也就是把配置文件名改為PRJLINT.LNT,并去掉未尾的"%f"

     、谠O置的快捷鍵與PC-LINT要區別開來

      利用下面的DOS命令可以用來得到一堆*.C文件的清單。例如:

     、 列出C:\SRC下所有*.C文件,并保存到C:\SRC\FILELIST.TXT:

      DIR C:\SRC\*.C /B >C:\SRC\FILELIST.TXT

     、 列出C:\SRC下,包括SRC的子目錄下的所有的*.C文件,,并添加到C:\SRC\FILELIST.TXT的未尾:

      DIR C:\SRC\*.C /S/B >>C:\SRC\FILELIST.TXT

      PC-Lint 重要文件說明

      Msg.txt :解釋告警的內容。

      選用的.lnt :包含頭文件的路徑,-i選項。

      env-選用的編輯環境.lnt :講述如何將PC-lint與對應的編輯環境結合起來。

      co-xxx .lnt :選定的編譯器。

      STD.LNT :內存模型等全局性東西。

      LIB-xxx.LNT :庫類型的列表,包括標準C /C++庫,MFC庫,OWL庫等等。

      AU-xxx.LNT :C++編程提出過重要建議的作者,選擇某作者后,他提出的編程建議方面的選項將被打開。

      OPTIONS.LNT :反映全局編譯信息顯示情況的選項文件。

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    TAG: 代碼 工具


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>