PCLint选项详解 下载本文

内容发布更新时间 : 2024/5/18 8:49:29星期一 下面是文章的全部内容请认真阅读。

PCLint选项详解

说明: “-”

: 表示仅输出到文件stdout

“+” : 表示同时输出到文件stdout和stderr

: {-+}v[oish#][mf]

使用格式

冗余信息指的是LINT过程中产生的一些与编译过程有关的信息,而不是指真正的告警信息、错误信息等。是否生成这些信息可以通过-v和+v选项来决定。+v是生成这些信息,-v是关闭这些信息,这组选项中除+v外,其它所有选项都可以关闭+v选项。

以下选项可以出现0或多个: o i s h #

: 输出命令行和注释行中包含的配置 : 输出所使用的配置文件名(lnt文件) : 输出内存消耗数量

: 输出严格的类型层次图(输出结果类似于DOS命令tree的结果) : 附加文件ID,用于判断文件是否相同

以下选项一次只能出现一个: m f

: 输出模块名(缺省就是输出模块名) : 输出所有文件名(此选项包含m选项) : 每条消息打印为int行(此选项包含f选项)

IV. 标志选项

说明: “+” : 表示打开该开关(即设置标志为1)

“-”

: 表示关闭该开关(即设置标志为0)

“++” : 表示增1 “--” : 表示减1

标志选项用于打开或关闭对某类语法情况的处理。后面两个选项(++和--)用于你想在局部改变开关取值,而不影响全局设置的情况。

例如你可以这样使用:

/*lint ++flb */ int printf( ); /*lint --flb */ fab

: 支持缩略式结构,如:s.a.b如果不会引起歧义的话,可以缩写为s.b。很少

有编译器支持这种功能。缺省值为OFF

fai

: 指针参数是否初始化(不初始化将告警),缺省值为ON

6

PCLint选项详解

fan fas fba fbc fbo fbu fcd fce fcp

: 是否支持匿名联合,用于结构变量的说明,对C缺省值为OFF,C++为ON : 是否支持匿名结构,类似于fan,缺省值同上 : Bit位寻址能力(可访问性),缺省值为OFF : 是否支持布尔类型常量0b...,缺省值为OFF : 是否允许bool, true, false关键字,缺省值为ON : 是否强制比特位域为无符号数,缺省值为OFF : 是否区分cdecl说明符,缺省值为OFF : 遇到#error时是否继续运行,缺省值为OFF : 强制使用C++处理方式,缺省值为OFF

+fcp表示其后的模块文件将被强制作为C++程序对待处理。-fcp表示按照扩展名使用缺省的处理方式。例如:lin +fcp a1.c a2.c a3.c -fcp a4.c a5.cpp,其中a1.c、a2.c和a3.c将被作为C++程序进行Lint,而a4.c和a5.cpp按照缺省的方式(C和C++)进行Lint。

fct fcu fdc fdh fdi fdl fdr feb

: 生成标签(说明:结构名、枚举名就是一种标签 Tag),缺省值为OFF : char型总是作为unsigned,缺省值为OFF

: C++中是否区分char、unsigned char、signed char,缺省值为ON : 是否为头文件名附加'.h',缺省值为OFF

: 是否从头文件目录(而非当前目录)开始搜索头文件,缺省值为OFF : 是否指针之差为long型数,缺省值为OFF,即int型数

: 检查函数的返回模式(返回值是否被使用等,旧风格的C),缺省值为OFF : 是否允许枚举类型做位域,缺省值为ON

fem : 是否支持非紧靠式修饰符,如:pascal int f();和int pascal f();对于某些编译

器只支持后一种紧靠式说明,缺省值为OFF

ffb ffd ffn ffo fhd fhg

: For语句生成代码块(Block),缺省值为ON : 是否使float拓宽为等于double,缺省值为OFF : 输出文件的全路径名,缺省值为OFF

: 在生成每条告警后是否调用fflush()立即存入文件,缺省值为ON : 是否采用增强型类型定义层次判断,缺省值为ON

: 是使用图形字符(ON)还是ASCII字符(OFF)来显示类型层次图,缺省

值为ON

fhs

: 是否自动将基于typedef的强类型形成类型层次,缺省值为ON

7

PCLint选项详解

fhx fie fil fim fiq fis

: 强索引类型是否通过类型层次相关,缺省值为ON : 等同枚举类型和整型,缺省值为OFF : 是否对标号进行缩排检查,缺省值为OFF : 能否使用-i包含多个包含路径,缺省值为ON

: 忽略缺省的限定词,如Large模式下的far就是可忽略的,缺省值为OFF : 整型常量是否有符号,如对常量0xFFFF,此标志为On时解释为负数,

Off时解释为正数,缺省值为OFF

fkp flb flc flf fll fln

: 是否使用K&R预处理方式(非ANSI的C标准),缺省值为OFF : 是否强制将其作为库程序代码对待,缺省值为OFF : 是否允许使用long char类型变量,缺省值为OFF : 是否分析库函数定义(C++),缺省值为OFF : 是否允许使用long long int类型变量,缺省值为OFF : 是否不忽略#line命令,缺省值为ON

fmd : 是否允许多次重复定义,缺省值为OFF fna fnc fnt fod fol fpa fpc

: (C++)是否允许使用操作符new[],缺省值为ON : 是否允许使用嵌套注释,缺省值为OFF

: (C++)class类中是否允许嵌套使用struct,union等,缺省值为ON : 生成Lob文件时是否输出所有对象声明用于模块间检查,缺省值为OFF : 生成Lob文件时是否输出所有库中对象,缺省值为OFF : 退出前是否暂停,缺省值为OFF

: 指针强制类型转换后是否保留左值特性,缺省值为OFF

例如:使int指针pi指向下一个字节的地址,标准用法是( * ( char ** ) &pi ) ++;一种普遍的简化方法是(( char * ) pi ) ++;但是后面一种用法对于标准C来说强制类型转化使pi失去了左值特性,因此无法对其进行++操作,如果你的编译器支持后一种写法,请将本开关置为ON。

fpm : 是否抑止“缺失精度”告警,缺省值为OFF fpn

: 是否假定所有指针均有可能为NULL,因此如果使用指针前不判断是否为

NULL的话就会告警,缺省值为OFF

fps

: 宏参数是否能在字符串内进行替换,用于非ANSI程序,对于ANSI标准有

#连字符可以完成同样功能,缺省值为OFF

8

PCLint选项详解

frb fsa fsc fsh fsu ftf ftr ful fva

: 是否自动为fopen调用增加参数\,缺省值为OFF : 是否允许结构赋值,缺省值为ON

: 是否将字符串作为const char *类型,缺省值为OFF : 是否使用共享式读文件打开,缺省值为OFF : 是否将字符串作为unsigned类型,缺省值为OFF : 是否处理未加工的模板函数,缺省值为OFF : 是否将文件名截断为8.3格式,缺省值为OFF : 是否支持unsigned long类型,缺省值为ON

: 是否将函数当作可变长参数函数处理,缺省值为OFF,

此参数为ON时表示不对该函数进行参数检查,这对于printf(),fprintf()等函数可以抑止参数告警(如515、516告警)

fvo fvr

: 是否支持void类型,缺省值为ON

: 返回方式是否可变(如不使用返回值等),缺省值为OFF

fwc : 是否将wchar_t作为标准类型,缺省值为OFF

fwu : 将wchar_t当作unsigned类型,缺省值为OFF,此选项设为ON将导致+fwc fxa

: 严格的数组类型检查,即对于数组参数只能传类型相同的数组实参,缺省

值为OFF

fxc fxf fxs

: 严格的字符类型检查,即对于char不能转化为int去匹配,缺省值为OFF : 严格的float类型检查,即对于float不能转化为double去匹配,缺省值为OFF : 严格的short类型检查,即对于short不能转化为int去匹配,缺省值为OFF

以上四个选项只用于非原型类的旧风格函数。 fzl fzu

: 定义sizeof()返回值为long,缺省值为OFF : 定义sizeof()返回值为unsigned,缺省值为ON

V. 输出格式选项

1.控制消息高度,使用格式为:-h[abfFrsm//]](缺省值为 -ha_3) : 为消息高度,取值范围为1-4

: 为每条消息的位置指示符,如果为2,该指示符将与消息同行显示,如 a

大于2,该符号将单独在一行显示

: 表示将位置指示符放在源程序中错误行的前一行(必须为3或4才行)

9

PCLint选项详解

b f F r s

: 表示将位置指示符放在源程序中错误行的下一行(必须为3或4才行) : 消息中总是包含文件信息

: 消息中总是包含文件信息,对于无法定位的行号使用MaxLine+1 : 对于针对源文件中同一行的多个错误消息,每个都重复显示行号 : 消息间空一行显示

m// : 恢复对宏定义的显示,为宏定义的指示符,缺省为“#” mn

2.控制消息宽度,使用格式为:-width(,)(缺省值为 -width(79,4)) 3.控制消息格式,使用格式为:-format=...(对于消息高度为4的情况,此选项无用。应该使用-format4a和-format4b)

%f

: 文件名

: 对于源文件中由宏使用产生的错误,不显示该宏的定义

%m : 告警消息文本 %n %t %l %c

: 告警号

: 消息类型(Error,Warning等) : 行号 : 列号

%C : 列号+1

%(...%) : 如果错误发生在一个文件内,那么包含...信息 \\n \\t \\s \\a

: 回车 : Tab键 : 空格键

: 告警(ASCII 7) : 引号(“”) : 反斜线(' \\ ')

\\q \\\\

VI. 其它选项

-A

: 严格使用ANSI C/C++处理方式

-/+b : 抑止/重定向标语行(包括PCLint的版本号和Copyright信息)到stdout,此

选项必须放在命令行而不能放在配置文件中

10