PC-Lint选项详解
PC-lint简明教程(CC++静态代码检查工具)

PC-lint简明教程(CC++静态代码检查⼯具)前⾔PC-lint是⼀款⼩⽽强⼤的C/C++静态代码检查⼯具,它可以检查未初始化变量,数组越界,空指针等编译器很难发现的潜在错误。
在很多专业的软件公司如Microsoft,PC-Lint检查⽆错误⽆警告是代码⾸先要过的第⼀关。
安装配置有关安装步骤,请参考附录中的⽂章“静态代码检查⼯具PC-Lint“的“4 PC-Lint软件使⽤⽅法”,不过该⽂章使⽤的是VC++ 6.0的开发环境,最新的PC-lint 9.0⽀持VS2008,可以在安装过程中⾃⼰选择。
关于PC-lint和VS2008的集成,请参考PC-Lint安装⽬录下的env-vc9.lnt⽂件,⾥⾯讲解的⾮常之详细,不必参考“静态代码检查⼯具PC-Lint”这篇⽂章中的该段内容(如果你的E⽂不是很好,那参考⼀下中⽂还是有帮助的)。
在env-vc9.lnt⽂件中的Simple Check部分,有如下⼀段内容:Arguments: -i"c:/lint" std.lnt env-vc9.lnt "$(ItemFileName)$(ItemExt)"建议使⽤以下⼀段新的Arguments:Arguments: -i"c:/lint" std.lnt env-vc9.lnt "$(ItemDir) $(ItemFileName)$(ItemExt)"作⽤是在检查代码的⽣成结果中,可以双击某⼀个检查结果直接定位到代码中的某⼀⾏,缺点是检查结果会更长⼀点,因为它使⽤了全路径。
依照env-vc9.lnt的说明配置完成后,在VS2008的Tools菜单下会有四个PC-lint的选项,如下图所⽰。
常见错误1. 在PC-lint的Configuration向导结束后,会在PC-lint的安装⽬录下⽣成std.lnt⽂件,⾥⾯有⼀⾏:options.lnt -si4 -sp4如果按照“静态代码检查⼯具PC-Lint“⾛完所有的标准配置的话,options.lnt会⾃动⽣成,但⽆内容(注释除外),如果中间某⼀步skip了,可能该⽂件就不会⽣成,这时就需要⼿动创建⼀个options.lnt⽂件,或在std.lnt中注释掉options.lnt,否则会在使⽤PC-lint时会出现找不到options.lnt的错误。
pclint 规则自定义-概述说明以及解释

pclint 规则自定义-概述说明以及解释1.引言1.1 概述PCLint是一款流行的静态代码分析工具,用于帮助开发人员提高代码质量和发现潜在的bug。
其强大的规则检测能力使得开发人员能够在编译阶段就发现一些潜在的程序错误,从而帮助节省修复成本和提高代码的健壮性。
本文将重点介绍PCLint规则的自定义功能,通过自定义规则,开发人员可以根据项目的具体需求和编码规范来定制一些特定的规则,从而更好地适应项目的实际情况,提高代码质量和开发效率。
在接下来的章节中,我们将介绍PCLint的基本概念和规则自定义的方法,以及一些实例来帮助读者更好地理解和应用PCLint规则自定义功能。
通过本文的学习,读者将能够更好地利用PCLint工具来改善代码质量,并提高软件开发的效率和质量。
1.2文章结构文章结构部分的内容:文章结构是指文章的整体框架和组织方式。
一个清晰的文章结构可以帮助读者更好地理解文章的内容。
在本文中,我们将按照以下结构来展开讨论:1. 引言部分将介绍本文的背景和意义,概述PCLint规则自定义的重要性以及本文的目的和结构。
2. 正文部分将详细介绍PCLint的简介,包括其功能和特点。
然后将介绍PCLint规则定制的方法,以及如何自定义PCLint规则来满足特定的需求。
3. 结论部分将总结本文的主要内容和观点,提出应用建议,以及展望未来可能的发展方向。
通过以上结构的安排,我们将全面而系统地介绍PCLint规则自定义的相关知识,帮助读者更好地理解和应用这一技术。
1.3 目的在本文中,我们的主要目的是介绍如何通过自定义规则来定制PCLint 的规则,以满足不同项目的代码检查需求。
通过了解PCLint 的规则定制方法和实例,读者可以更好地理解如何根据项目特点和要求,制定符合实际情况的代码规范,提高代码质量和可维护性。
同时,我们也希望通过本文的分享,促进开发团队对代码规范的重视,提高团队的整体开发效率和项目质量。
PC-lint的配置及使用

PC-lint的基本使用方法 PC-lint的基本使用方法
PC-lint的常用选项(一) 的常用选项( 的常用选项 -i 主要用来设置inlude路径,如:-iD:\VC\VC98\Include -e# 屏蔽告警号为#的告警,如: -e1904表示不显示告警号为1904的告警信息 -esym(#,符号名) 屏蔽告警号为#的某个符号的告警,如:-esym(39,std)1904 -emacro(#,宏名称) 屏蔽告警号为#的某个宏的告警
掌握PC-lint的配置方法 使用PC-lint分析程序源代码
PC-lint的配置及使用 PC-lint的配置及使用
实验目的 背景知识 实验内容 实验步骤
背景知识
PC-lint简介 简介 PC-lint的基本使用方法 的基本使用方法
PC-lint简 PC-lint简介
PC-lint是一款 是一款C/C++软件源代码静态分析工 是一款 软件源代码静态分析工 除了可以检查出一般的语法错误外, 具,除了可以检查出一般的语法错误外,它还可 以检查出那些虽然符合语法要求, 以检查出那些虽然符合语法要求,但很可能是潜 在的、不易发现的错误, 在的、不易发现的错误,从而修正模糊或者不正 确的程序设计。 确的程序设计。PC-lint支持几乎所有流行的编辑 支持几乎所有流行的编辑 环境和编译器, 环境和编译器,如Borland C++、 Microsoft 、 Visual C++、Source insight等,可以方便地集成 、 等 到各种开发环境中。 到各种开发环境中。
使用PC-lint分析程序源代码 分析程序源代码 使用
使用PC-lint分析程序源代码,并根据PC-lint的输 出信息,完善代码。
PC-lint配置及使用说明

1.1简介如果要给lint工具下一个形象点的定义,那就是:一种更加严格的编译器。
它不仅可以象普通编译器那样检查出一般的语法错误,还可以检查出那些虽然完全合乎语法要求,但很可能是潜在的、不易发现的错误。
请看下面的例子:1:char *report( int m, int n, char *p )2:{3:int result;4:char *temp;5:long nm;6:int i, k, kk;7:char name[11] = "Joe Jakeson";8:nm = n * m;9:temp = p == "" "null" : p;10:for (i = 0; i < m; ++i)11:{12:k++;13:kk = i;14:}15:if (k == 1) result = nm;16:else if (kk > 0) result = 1;17:else if (kk < 0) result = -1;18:if (m == result) return(temp);1机密文件,知识产权属迈瑞公司所有第 1 页共 1319:else return(name);20:}上面的代码用一般的编译器编译是一段有效的代码,但是用PC-Lint编译就会有几个告警。
首先第7行向name数组赋值时丢掉了nul字符,第8行的乘法精度会失准,第9行的比较有问题,第12行的变量k没有初始化,第13行的kk可能没有被初始化,第18行的result也有可能没有被初始化,第19行返回的是一个局部对象的地址。
这段代码在大部分编译器下是可以顺利编译通过的,继续查找其中的错误就要靠人工调试程序,如果程序很大,这将是一项烦琐的工作,没有人可以保证能找出所有的这类问题,但PC-Lint只通过一次简单的编译就可做到,显然为我们节省了大量的开发时间。
PC-Lint选项详解

-spFP# :
-spD# :
-spP#
:
-smp# :
-smpD# :
-smpP# :
-smpNP# :
-smpFP# :
-sw#
:
PCLint选项详解
size of far data pointer,缺省值为6 size of far prog pointer,缺省值为6 size of data ptrs,缺省值为4和6 size of program ptrs,缺省值为4和6,near为4,far为6 size of all member ptrs,缺省值为4 size of member ptr (data),缺省值为4 size of member ptrs (prog),缺省值为4 size of member ptr (Near Prog),缺省值为4 size of member ptr (Far Prog),缺省值为4 size of wide char,缺省值为2
-efile(#,<File>) 对指定文件禁止输出告警号为#的消息 -efunc(#,<Func>) 对于函数Func,禁止输出告警号为#的消息 -elib(#) : 对于库头文件禁止输出告警号为#的消息 -elibsym(#) : 对于所有库头文件中的符号禁止输出告警号为#的消息,此告警不同于
elib之处在于-elib(#)仅仅当分析头文件时不输出相应的告警,如果你在源程 序中使用了会导致告警#的变量等,在分析源程序时还是会告警的,因此要 想完全的关闭该告警,使其在头文件和源文件中均不出现,请使用本选项
第3页,共19页
PCLint选项详解
-emacro(#,Symbol) 对于宏Symbol,当其展开时禁止输出告警号为#的消息
VC中多文件工程的PCLint使用详解

VC中多文件工程的PCLint使用详解VC中多文件工程的PCLint使用详解2006-4-14 Lander 整理介绍:对于多个源程序文件且多个头文件目录的项目进行PCLint 语法检查。
1.安装我使用的是PC.Lint.v8.00e,是不用安装的版本。
解开到E:\PC.Lint.v8.00e目录,可执行文件为Lint.exe(lint-nt.exe与其相同,可能为NT平台用的,在Win2000下都可运行)。
子目录lnt内是检查的规则及选项文件,这两种文件扩展名全为.lnt。
2.准备自己工程的选项文件在E:\PC.Lint.v8.00e\lnt下新建MyProj.lnt文本文件,我们将自己工程的很多头文件目录,在其中一一列出来,内容如下:std.lnt/*注释:包含的规则和/或选项文件*/env-vc6.lnt/*下面为各头文件目录,可以在字串中不要双引号,可以有多行*/-i"C:\MyProj\IncludeA" -i"C:\MyProj\IncludeB" -iC:\MyProj\IncludeC-iC:\MyProj\IncludeD-e641//另一种注释//这是省略#641错误【注意】指明各头文件目录很重要。
头文件各目录的名称可能在VC的Project\Project Settings\Project Options栏中:/I "../Include/PS",可供借鉴(相对路径暂未测试)。
当后面运行Lint时出现无法打开某个头文件时,需要不断添加头文件所在目录的名称到本选项文件中。
3.在VC中运行PCLint(针对单个文件但需包含多个头文件目录):A 点击T ools/Customize/T ools出现定制窗口B 在Menu contents中双击下面的空白拦,输入拟新增的T ool名称:PCLintC 双击PClint项,在Command中填入要调用的.exe文件名:lintArguments:中填入:-i"E:\PC.Lint.v8.00e\lnt" MyProj.lnt $(FilePath)【注意】$(FilePath)这个字串是个宏名,也可以通过点击右边的三角箭头选择;可能为要检查的本文件的路径加文件名,而不能是$(FileName)因为它可能只是文件名而不带路径,将导致使用时说无法发现!另外,MyProj.lnt这个选项文件必须在$(FilePath)之前。
PC-lint配置及使用说明
1.1简介如果要给lint工具下一个形象点的定义,那就是:一种更加严格的编译器。
它不仅可以象普通编译器那样检查出一般的语法错误,还可以检查出那些虽然完全合乎语法要求,但很可能是潜在的、不易发现的错误。
请看下面的例子:1:char *report( int m, int n, char *p )2:{3:int result;4:char *temp;5:long nm;6:int i, k, kk;7:char name[11] = "Joe Jakeson";8:nm = n * m;9:temp = p == "" ? "null" : p;10:for (i = 0; i < m; ++i)11:{12:k++;13:kk = i;14:}15:if (k == 1) result = nm;16:else if (kk > 0) result = 1;17:else if (kk < 0) result = -1;18:if (m == result) return(temp);19:else return(name);20:}上面的代码用一般的编译器编译是一段有效的代码,但是用PC-Lint编译就会有几个告警。
首先第7行向name数组赋值时丢掉了nul字符,第8行的乘法精度会失准,第9行的比较有问题,第12行的变量k没有初始化,第13行的kk可能没有被初始化,第18行的result也有可能没有被初始化,第19行返回的是一个局部对象的地址。
这段代码在大部分编译器下是可以顺利编译通过的,继续查找其中的错误就要靠人工调试程序,如果程序很大,这将是一项烦琐的工作,没有人可以保证能找出所有的这类问题,但PC-Lint只通过一次简单的编译就可做到,显然为我们节省了大量的开发时间。
由于我们现有的PC-Lint不是安装版,解压后直接使用,因此省略了安装步骤,而直接进入配置阶段。
[计算机软件及应用]PC-lint 中文手册
1基本概念手册描述的软件有两种方式。
对于PC市场(Windows、MS-DOS、OS/2),产品是二进制可执行文件格式。
对于其它平台,是C源代码形式,名字是FlexeLint。
我们在手册的全部部分使用术语PC-lint/FlexeLint 标识所有平台公共的行为。
PC-lint/FlexeLint 是一个发现一个模块或多个模块的C和C++程序的勘误表的软件包。
它使用K&R 和ANSI作为K&R C的标准;它使用ANSI/ISO 委员会文档作为C++的标准;很多C ’99 标准的特性集成到这个产品中,但是目前没有支持所有的C’99标准。
根据用户程序的大小来决定总共的需要的内存大小。
尤其是,存储的需求依赖于头文件的大小。
粗略估计,每2000行头文件需要的内存存储量大约是1Mb。
PC-lint包包含三个可执行文件:一个Windows可执行文件、一个DOS-extended 可执行文件和一个OS/2 32位可执行文件。
Windows 可执行文件运行在一个Windows环境下的32位控制台应用环境下。
DOS 扩展的可执行程序运行在MS-DOS环境下,使用80386 DOS 扩展技术来访问所有的存在的扩展内存。
OS/2 32位可执行程序只运行在OS/2环境下。
FlexeLint包主要由C 源代码组成,可以被编译到任何系统。
FlexeLint安装的详细信息可在FlexeLint包中的"FlexeLint Installation Guide"找到。
2简介PC-lint/FlexeLint发现C和C++程序中的怪癖、异质、失灵和臭虫。
这样分析的目的是发现这些程序中的在集成前的潜在的问题,揭示可能包含敏感的、未检测到的错误的不寻常的结构。
因为它寻找几个模块而不仅仅是一个,它可以发现编译器不能发现的事情。
它通常比编译关于很多细节更爱挑剔。
2.1一个例子考虑下面的C/C++程序(我们故意使这个例子小巧和可理解):1:2: char *report( short m, short n, char *p )3: {4: int result;5: char *temp;6: long nm;7: int i, k, kk;8:char name[11] = "Joe Jakeson";9:10:n m = n * m;11:t emp = p == "" ? "null" : p;12:f or( i = 0; i < m; i++ )13: { k++; kk = i; }14: i f( k == 1 ) result = nm;15:e lse if( kk > 0 ) result = 1;16:e lse if( kk < 0 ) result = -1;17: i f( m == result ) return temp;18: e lse return name;119: }对于大多数的编译器来说,它是一个有效的C (或C++) 程序。
PC-Lint使用指南
PC-Lint使用指南1简介PC-Lint是一个历史悠久,功能强大的静态代码检查工具,它不仅可以检查出很多语法逻辑上的隐患,还能帮助提出程序在空间利用、运行效率上的改进点,很多专业的软件公司将PC-Lint检查无错误无警告作为代码首先要过的第一关。
PC-Lint主要有以下功能特点:⏹PC-Lint是一种静态代码检查工具,可以说,PC-Lint是一种更加严格的编译器,不仅可以象普通编译器那样检查出一般的语法错误,还可以检查出那些虽然完全符合语法要求,但很可能是潜在的、不易发现的错误。
⏹PC-Lint不但可以检查单个文件,也可以从整个项目的角度来检查问题,因为C语言编译器固有的单个编译,这些问题在编译器环境下很难被检测,而PC-Lint在检查当前文件的同时还会检查所有与之相关的文件。
⏹PC-Lint支持几乎所有流行的编辑环境和编译器,例如Borland C++从1.x到5.x各个版本、Borland C++ Build、GCC、VC,、watcom C/C++、Source insight、UltraEdit等等。
⏹支持MISRA规则检查和支持Scott Meyes的名著(Effective C++/More EffectiveC++)中说描述的各种提高效率和防止错误的方法。
2使用方法随本文一起提供的PC-Lint是一个不用安装的版本,为了方便起见,直接解压到c:\pclint 目录。
PC-Lint重要文件的说明:⏹LINT-NT.EXE:可执行文件,已升级到v8.00w。
⏹PATCH.EXE:用于升级版本的工具。
⏹msg.txt:消息描述文件,描述了各种警告信息。
⏹pc-lint.pdf:PC-Lint在线手册。
⏹readme.txt:在线手册的补充。
⏹lnt\co-xxx.lnt 编译器选项文件。
env-xxx.lnt 编辑环境选项文件。
lib-xxx.lnt 库相关的选项文件。
sl-xxx.lnt 非ANSI编译器的标准库模块。
PC-lint配置及使用说明
PC-lint配置及使用说明1.1简介如果要给lint工具下一个形象点的定义,那就是:一种更加严格的编译器。
它不仅可以象普通编译器那样检查出一般的语法错误,还可以检查出那些虽然完全合乎语法要求,但很可能是潜在的、不易发现的错误。
请看下面的例子:1:char *report( int m, int n, char *p )2:{3:int result;4:char *temp;5:long nm;6:int i, k, kk;7:char name[11] = "Joe Jakeson";8:nm = n * m;9:temp = p == "" ? "null" : p;10:for (i = 0; i < m; ++i)11:{12:k++;13:kk = i;14:}15:if (k == 1) result = nm;16:else if (kk > 0) result = 1;17:else if (kk < 0) result = -1;18:if (m == result) return(temp);19:else return(name);20:}上面的代码用一般的编译器编译是一段有效的代码,但是用PC-Lint编译就会有几个告警。
首先第7行向name数组赋值时丢掉了nul 字符,第8行的乘法精度会失准,第9行的比较有问题,第12行的变量k没有初始化,第13行的kk可能没有被初始化,第18行的result 也有可能没有被初始化,第19行返回的是一个局部对象的地址。
这段代码在大部分编译器下是可以顺利编译通过的,继续查找其中的错误就要靠人工调试程序,如果程序很大,这将是一项烦琐的工作,没有人可以保证能找出所有的这类问题,但PC-Lint只通过一次简单的编译就可做到,显然为我们节省了大量的开发时间。
由于我们现有的PC-Lint不是安装版,解压后直接使用,因此省略了安装步骤,而直接进入配置阶段。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
-epnc
: 指针指向的字符串类型,仅仅名义上不同
-esym(#,Symbol) 对于指定的符号Symbol(可以是变量名、函数名等),禁止输出告警号为
#的消息,符号Symbol中可以使用通配符*和?。-e#的级别比较高,因此对
于-e714 +esym( 714,alpha ),后一个选项将不起作用
那么它会在宏展开时将n / m看作( n / m )来处理。用处不是很大。
-epn
: 名义上的指针不一致,如:对于指向字节数大小相同的变量的指针
-eps
: 指针指向的类型不同,但大小字节数相同
-epu
: 指针指向的类型仅仅符号不一致
-epp
: 指针指向的类型不确定
-epuc
: 指针指向的字符串类型,其符号不一致
第3页,共19页
PCLint选项详解
-emacro(#,Symbol) 对于宏Symbol,当其展开时禁止输出告警号为#的消息
-emacro((#),Symbol) 对于宏Symbol,当其展开时禁止输出告警号为#的消息,与上一个选项的
区别是它会先将宏加上一对括号再判断,如:#define DIVIDE( n , m ) n / m
PCLint选项详解
PCLint选项详解
目录
1 错误信息禁止选项 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2 变量类型大小选项 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 3 冗余信息选项 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 4 标志选项 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 5 格式输出选项 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 6 其它选项 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 7 编译器相关选项 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 8 各种使用说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
-e(#)
: 对于下一个表达式禁止输出告警号为#的消息
!e#
: 在本行禁止输出告警号为#的消息
--e(#) : 对当前的整个表达式禁止输出告警号为#的消息
-eai
: 整型数子类参数不一致,如:char/short vs. int
-ean
: 名义上的参数不一致,如:字节数相同(都是32位)的int和long等
1 错误信息禁止选项
说明: “-” : 表示禁止输出相应的错误消息
“+” : 表示允许输出相应的错误消息
“#” : 允许使用通配符“?”和“*”
除 了900级 别( 900- 999)和1900( 1900-1999) 级别的告警消息缺省是关闭的外, 其它的告
警消息缺省均是打开的。
-e#
: 禁止输出告警号为#的消息
-spN# : size of near ptrs,缺省值为4
-spF#
:
size of far ptrs ,缺省值为6
-spND# : -spNP# :
size of near data pointer,缺省值为4 size of near prog pointer,缺省值为4
第4页,共19页
-spFD# :
第2页,共19页
PCLint选项详解
以下为PC-lint for C/C++ (NT) Ver. 7.50v版本配置参数的详细解释及用法举例。 LINT选项可以放在注释中,例如:
/*lint option1 option2 ... optional commentary */ 选项可以有多行 //lint option1 option2 ... optional commentary 选项仅为一行 选项间要以空格分开 ,lint命令一定要小写,并且紧跟在/*或 //后面 ,不能有空格。 如果选项由 类似于操作符和操作数的部分组成,例如-esym(534, printf, scanf, operator new),其中最后一个选 项是operator new,那么在operator和new中间只能有一个空格。 选项还可以放在宏定义中,当宏被展开时选项才生效。例如: #define DIVZERO(x) /*lint -save -e54 */ ((x) /0) /*lint -restore */ 允许除数为0而不告警 LINT的选项很多共有300多种,大体可分为以下几类:
8.1 库模块文件的使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 8.2 汇编(非C、C++)文件的处理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 8.3 强类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 8.4 PCLint的预处理符 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 8.5 选项的处理顺序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 8.6 使告警最大化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 9 附录:PCLint在Source Insight中的使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 9.1 Source Insight的正规表达式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
-eas
: 参数大小相同,如:如果int和pointer字节数相同,那么如果f()的参数应该
是pointer的话,用f(3)整型数调用就会报错,设置此项可以关闭告警
-eau
: 参数类型一致,但是符号类型不一致,如:unsigned int和int
以上四个选项主要FP# :
-spD# :
-spP#
:
-smp# :
-smpD# :
-smpP# :
-smpNP# :
-smpFP# :
-sw#
:
PCLint选项详解
size of far data pointer,缺省值为6 size of far prog pointer,缺省值为6 size of data ptrs,缺省值为4和6 size of program ptrs,缺省值为4和6,near为4,far为6 size of all member ptrs,缺省值为4 size of member ptr (data),缺省值为4 size of member ptrs (prog),缺省值为4 size of member ptr (Near Prog),缺省值为4 size of member ptr (Far Prog),缺省值为4 size of wide char,缺省值为2