1. 程式人生 > >PC-Lint的入門-- 一、概念與基本操作

PC-Lint的入門-- 一、概念與基本操作

1.PC-Lint工具介紹

PC-Lint for C/C++是由Gimpel軟體公司於1985年開發的程式碼靜態分析工具,它能有效地發現程式語法錯誤、潛在的錯誤隱患、不合理的程式設計習慣等。

C語言的靈活性帶來了程式碼效率的提升,但相應帶來了程式碼編寫的隨意性,另外C編譯器不進行強制型別檢查,也帶來了程式碼編寫的隱患。PC-Lint能識別並報告C語言中的程式設計陷阱和格式缺陷的發生。它進行程式的全域性分析,能識別沒有被適當檢驗的陣列下標,報告未被初始化的變數,警告使用空指標,冗餘的程式碼,等等。軟體除錯是軟體專案開發成本和延誤的主要因素。PC-lint能夠幫你在程式動態測試之前發現編碼錯誤,這樣消除錯誤的成本更低。使用PC-Lint

在程式碼走讀和單元測試之前進行檢查,可以提前發現程式隱藏錯誤,提高程式碼質量,節省測試時間。並提供編碼規則檢查,規範軟體人員的編碼行為。

PC-Lint能夠檢查出很多語法錯誤和語法上正確的邏輯錯誤,PC-Lint為大部分錯誤訊息都分配了一個錯誤號,編號小於1000的錯誤號是分配給C語言的,編號大於1000的錯誤號則用來說明C++的錯誤訊息。表 1 列出了PC-Lint告警訊息的詳細分類:詳細資訊可參考c:/lint/msg.txt 檔案

                          C             C++           Warning Level

Syntax Errors            1 - 199     1001 - 1199           1
Internal Errors        200 - 299     1200 - 1299           0
Fatal Errors           300 - 399                           0
Warnings               400 - 699     1400 - 1699           2
Informational          700 - 899     1700 - 1899           3
Elective Notes         900 - 999     1900 - 1999           4
C
語言為例,其中的編號1-199指的是一般編譯器也會產生的語法錯誤;編號200-299PC-Lint程式內部的錯誤,這類錯誤不會出現在程式碼中的;編號300-399指的是由於記憶體限制等導致的系統致命錯誤。編號400-999中出現的提示資訊,是根據隱藏程式碼問題的可能性進行分類的:其中編號400-699指的是被檢查程式碼中很可能存在問題而產生的告警資訊;編號700-899中出現的資訊,產生錯誤的可能性相比告警資訊來說級別要低,但仍然可能是因為程式碼問題導致的問題。編號900-999是可選資訊,他們不會被預設檢查,除非你在選項中指定檢查他們。

相關推薦

PC-Lint入門-- 概念基本操作

1.PC-Lint工具介紹 PC-Lint for C/C++是由Gimpel軟體公司於1985年開發的程式碼靜態分析工具,它能有效地發現程式語法錯誤、潛在的錯誤隱患、不合理的程式設計習慣等。 C語言的靈活性帶來了程式碼效率的提升,但相應帶來了程式碼編寫的隨意性,另外C編譯器不進行強制型別檢查,也

大資料(十七):Hive簡介安裝基本操作

一、簡介         Hive由Facebook開源用於解決海量結構化日誌的資料統計。Hive是基於Hadoop的一個數據倉庫工具,可以將結構化的資料檔案對映為一張表,並提供類Sql查詢的功能。 hive本質是將HQL轉化為MapRedu

[AI教程]tensorflow入門:Hello World基本操作

文章目錄 1.tensorflow介紹 2.Hello World 3.基本操作 1.tensorflow介紹 TensorFlow™ 是一個採用資料流圖(data flow graphs),用於數值計算的開源軟體庫。節點(Nodes)

資料庫:簡介安裝配置基本操作

目錄 一、資料和資料庫 1.什麼是資料? 客觀事物的符號表示。 2.資料的分類? 結構化資料:可以通過統一的格式進行管理的資料。 非結構化資料:

雜湊表Hash:概念基本操作

什麼是Hash Hash就像是一個桶排,那隻不過是把各個元素的數值當做下標進行儲存.其最常用的用途就是用來判重.但是,如何對字串進行判重,不可能一個一個往前超,若n上萬則顯然不可行.我們可以選擇進行Hash,將每一個字串或者大數字進行一定的操作即可進行. 對大整數型別進行Hash 取模法 對於每一個

總結:地圖的基本操作

我們需要用到 navigation.js  載入相關的模組:esri/toolbars/navigation 1、 //建立基本小工具 var navToolbar = new Navigation(map); //放大 navToolbar.activate(Na

[Web][DreamweaverCS6][高中同學畢業分布去向網站+服務器上掛載]安裝破解DreamweaverCS6+基本規劃

ima data 計時 感覺 get .net 查詢 並且 背景   DreamweaverCS6安裝與破解 一、背景介紹:同學畢業分布圖項目計劃簡介   哎哎哎,炸麽說呢,對於Web前端設計來說,純手撕html部分代碼實在是難受。   對於想做地圖這類的就&ldqu

Elasticsearch入門:Elasticsearch的基本概念(譯)

一.Elasticsearch定義 Elasticsearch是一個開源的高度可擴充套件的全文搜尋和分析引擎。它允許您快速、實時的儲存、搜尋和分析大資料。它通常為具有複雜的搜尋特性和需求的應用提供底層引擎或技術。 Elasticsearch可以用於以下的一些場景: 運營一個網上商城

python系列()python簡介安裝基本應用

注:本文為轉載,如有侵權請告知,將予以刪除 原連結:http://blog.51cto.com/zpf666/1920313     一、python簡介 1、python介於C語言與shell之間,於1989年由guido van Rossum(龜叔)開發,

常用API()——StringStringBuffer基本型別包裝類

String 關於String這個特殊類,我到現在都還沒搞明白,我覺得可能主要是由於沒有搞懂JVM的記憶體結構引起的,但還是對其進行以下記錄。 字串是一個特殊的物件。 字串一旦初始化就不可以被改變。 String str = "abcd"; 以上這句

Hadoop — HDFS的概念原理及基本操作

IE 觀察 poi 如何恢復 滾動 4.3 python metadata 元數據 1. HDFS的基本概念和特性 設計思想——分而治之:將大文件、大批量文件分布式存放在大量服務器上,以便於采取分而治之的方式對海量數據進行運算分析。在大數據系統中作用:為各類分布式運算框架(

概念

main mage 分配 單位 www. 創建線程 電腦 由於 並行 1、並發和並行   並行:指兩個或多個時間在同一時刻發生(同時發生);   並發:指兩個或多個事件在一個時間段內發生。         在操作系統中,安裝了多個程序,並發指的是在一段時間內宏觀上有多個程序

MybatisJDBC的區別

googl 編譯 XML wing vax roc 什麽 重新編譯 發出 1、什麽是MyBatis?   MyBatis 本是apache的一個開源項目iBatis, 2010年這個項目由apache software foundation 遷移到了google code,

mysql8.0.11安裝啟動基本設置

nds let .... val dir acl 初始化 演示 mbo 此次演示的是mysql 8.0.11的安裝、啟動與基本設置。 下載mysql-8.0.11-el7-x86_64.tar.gz 1、解壓並重命名[root@localhost ~]# c

選擇安裝——Linux學習筆記

部分 rtu ali 了解 使用 通用 一次 box 學習 A)為什麽要用Linux做服務器? 網絡理由: 1.linux本身是網絡操作系統,支持所有TCP/IP協議,網絡功能是內核中六大模塊之一 2.linux和unix兼容,unix是早期的服務器霸主,現在份額逐漸讓給l

程序算法

db4 描述 com 51cto 需要 鏈式存儲結構 定義 fff 關聯 一、程序的本質程序是為了實際的問題而存在從本質上而言,程序是解決問題的步驟描述。數據結構起源 計算機從解決數值計算問題到解決生活中的問題 現實生活中的問題涉及不同個體間的復雜聯系&

包裝類(Integer/Boolean等字串基本資料型別轉化,-127-128自動裝箱入池)

為什麼要有包裝類? Object類可以接收所有引用資料型別。然而在Java中,資料型別分為基本資料型別和引用資料型別,那麼基本資料型別如何處理呢? 使用包裝類 :包裝類是將基本資料型別封裝到類中,因為Object無法接受基本資料型別,封裝成類後就可以用Object類來接收。 簡單定義一個in

02 ndarray的屬性 ndarray的基本操作(索引切片變形連線切分副本)聚合操作矩陣操作排序Panda資料結構Series建立索引切片屬性方法運算

二、ndarray的屬性 4個必記引數: ndim:維度 shape:形狀(各維度的長度) size:總長度 dtype:元素型別 import matplotlib.pyplot as plt ndarr = plt.imread("./jin.png") plt.

RPython手牽手:資料框的構建讀取基本描述

在雙11免費Get新知識的人,才是最會花錢的人,也將是最會賺錢的人! 別的專場拼消費,唯有天善學院,投資你的未來! ▲詳情點選▲ 作者:黃天元,復旦大學博士在讀,目前研究涉及文字挖掘、社交網路分析和機器學習等。希望與大家分享學習經驗,推廣並加深R語言在業界的應用。

搭建電影網站詳細教程——域名伺服器

前言:這幾天閒著無聊想要搭建一個電影網站,沒事的時候可以看個電影,瀏覽量多了的話還可以掛個廣告。^_^ 上網找了找教程,發現沒有特別詳細的,就準備自己寫一個,以後有需要可以看一下。 一、購買域名與伺服器 我租的是阿里的域名以及伺服器,對比了一下BAT三家公司,阿里的比較便宜。