lint是什麼?
lint是最著名的c語言工具之一,是由貝爾實驗室stevejohnson於1979在pcc(portablec compiler)基礎上開發的靜態**分析,一般由unix系統提供。
lint介紹
與大多數c語言編譯器相比,lint可以對程式進行更加廣泛的錯誤分析,是一種更加嚴密的編譯工具。最初,lint這個工具用來掃瞄c原始檔並對源程式中不可移植的**提出警告。但是現在大多數lint實用程式已經變得更加嚴密,它不但可以檢查出可移植性問題,而且可以檢查出那些雖然可移植並且完全合乎語法但卻很可能是錯誤的特性。
隨著歷史的推移,lint後來形成了一系列的工具,包括pc-lint/flexelint(gimpel),lintplus(cleanscape)以及splint
lint的功能
lint檢查c程式中潛在的錯誤,包括(但不限於)可疑的型別組合、未使用的變數、不可達的**以及不可移植的**。lint會產生一系列程式設計師有必要從頭到尾仔細閱讀的診斷資訊。使用lint的好處是:1.它可以檢查出被編譯器漏掉的錯誤; 2.可以關聯很多檔案進行錯誤的檢查和**分析,具有較強大靈活性.lint可以檢查的錯誤型別大體如下:
pc-lint
pc-lint是gimpelsoftware公司開發的c/c++軟體**靜態分析工具,是乙個歷史悠久(30年之久)且功能異常強大的靜態**檢測工具,它的全稱是pc-lint/flexelint for c/c++。pc-lint能夠在windows、ms-dos和os/2平台上使用,以二進位制可執行檔案的形式發布,而flexelint執行於其它平台,以源**的形式發布。pc-lint在全球擁有廣泛的客戶群,許多大型的軟體開發組織(比如miscrosoft )都把pc-lint檢查作為**走查的第一道工序。對小公司和個人開發者而言,pc-lint也非常的重要。小公司往往受到開發成本的考慮,不能對**進行全面的測試。此時利用pc-lint的強勁的功能可以很好的提高**的質量。
c/c++語言的語法擁有其它語言所沒有的靈活性,這種靈活性帶來了**效率的提公升,但相應也使得**編寫具有很大的隨意性,另外c/c++編譯器不進行強制型別檢查,也不做任何邊界檢查,這就增加了**中存在隱患的可能性。如果能夠在**提交測試之前發現這些潛在的錯誤,就能夠極大地減輕測試人員的壓力,減少軟體專案的除錯成本,可是傳統的c/c++編譯器對此已經無能為力,這個任務只能由專用的**檢查工具完成。而pc-lint就是這樣的**檢查工具。pc-lint不僅能夠對程式進行全域性分析,識別沒有被適當檢驗的陣列下標,報告未被初始化的變數,警告使用空指標以及冗餘的**,還能夠有效地幫你提出許多程式在空間利用、執行效率上的改進點。在**走讀和單元測試之前使用pc-lint可以提前發現程式中的隱藏錯誤,提高**質量,節省測試時間;並提供編碼規則檢查,規範軟體開發人員的編碼行為。
一般**檢查功能
pc lint能檢查出**的語法錯誤和可能引起程式異常執行的邏輯告警。但它更側重於後者的檢查,因為這類問題更容易被人忽略(前者通過平台編譯器去發現)。所以它的**檢查功能通常表現在下面幾方面:
強型別檢查:強型別檢查選項「-strong」和它的輔助(補充)選項「-index」可以對typedef定義的資料型別進行強型別檢查,以保證只有相同型別之間的變數才能互相賦值
變數值跟蹤:包括對變數值初始化,變數值,函式內變數這些情況進行跟蹤,發現其中不符合語法規範的告警
賦值順序檢查:檢查當乙個表示式的值依賴於賦值的順序時,是否會出問題
弱定義檢查:檢查當巨集定義、typedef名字、宣告、結構、聯合和列舉型別這些東西可能在模組中被過多定義且不被使用的情況。
格式檢查:檢查printf和scanf(及其家族)中的格式衝突告警
縮排檢查:檢查**中的縮排問題是為避免出現**結構不良或者大括號的遺漏等問題
const變數檢查
volatile變數檢查
Android工具 Lint的使用
1.在cmd中執行 lint show allowbackup 顯示lint中關於allowbackup這個話題 issue 的解釋,執行結果如下 allowbackup manifest priority 3 10 severity warning category security and re...
Android優化筆記 Lint工具使用
lint androidstudio 提供乙個名為lint的靜態 掃瞄工具,可以發現並糾正 結構的質量問題,而無需實際執行該應用,也不必編寫測試用例。lint工具可檢查您的android專案原始檔是否包含潛在 錯誤,以及在正確性,安全性,效能,易用性,便利性和國際化是否需要優化改進。特性 1 已經被...
android studio裡 Lint的使用
一 簡介 android lint 是sdk tools 16 adt 16 之後才引入的工具,通過它對android工程源 進行掃瞄和檢查,可發現潛在的問題,以便程式設計師及早修正這個問題。android lint提供了命令列方式執行,還可與ide 如eclipse 整合,並提供了html形式的輸...