77范文网 - 专业文章范例文档资料分享平台

PClint检查项目

来源:网络收集 时间:2019-02-21 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

PC-LINT中的各种错误信息都有一个相关的错误号,其中各个错误号的分配区间如下:

表1:PC-LINT错误号区间分配

错误类型 语法错误 内部错误 致命错误 告警 提示信息 可选的注解 错误号-C 1 -199 200-299 300-399 400-699 700-899 900-999 错误号-C++ 1001-1199 1400-1699 1700-1899 1900-1999 告警级别 1 0 0 2 3 注:其中200-299号告警为PC-LINT的内部错误,一般不会发生, 1.1 C语法错误

1.1.1

-1―未关闭注释 (位置) ―2―未关闭的引号 -3-#else 没有一个#if

-4-太多的#if 嵌套层次

文件结束的时候,仍然有一个未关闭的注释存在,打开的这个注释位置将被显示出来。

1.1.2

在行尾的时候,仍然存在一个同行的未关闭的引号(单引号或双引号)。

1.1.3

在一个区域内有一个#else ,但是没有一个#if, #ifdef 或#ifndef。

1.1.4

检测出一个内部的限制,有关#if的嵌套层次 (包括 #ifdef和#ifndef)。

1.1.5

-5-太多的#endif -6-堆栈溢出

出现一个#endif ,但不是#if 或 #ifdef 或#ifndef.的。

1.1.6

一个内置的不可展开的堆栈被过分扩展。可能是太多的嵌套的#if 语句、#includes 语句

(包括所有的递归的#include 语句),static块(有限制的括号) 或#define置换。

1.1.7

-7-不能打开include的文件:FileName

FileName 是不能打开的include文件的名字。,可以见flag fdi (见章节5.5 标志选项),选项 -i... (见章节5.7其它选项) 和章节13.2.1 INCLUDE 环境变量。

1.1.8

-8-未关闭的#if (位置) -9-太多的#else在#if (位置)

一个#if (或 #ifdef 或 #ifndef) 没有遇到相应的#endif。位置是#if.的位置

1.1.9

一个给定的 #if 包含一个 #else,然后轮流流被紧跟另一个 #else 或一个 #elif。错误消息给出#if语句条件包含异常的行号 1.1.10 -10- 期望的字符串

字符串是期望的记号,期望的记号不能被发现。当一定的保留字没有被认出时,给出这

条消息,例如:

int __interrupt f();

将收到一个 Expecting ';' message at the f ,因为它认为你想声明__interrupt。 改正的方法是建立一个新的保留字使用 +rw(__interrupt)。 同样,保证使用正确的编译器选项文件。见章节15.10 奇怪的编译器.

1.1.11

-11-超出大小范围 -12-需要 < or “

在#include l行确定的文件名的长度超过了FILENAME_MAX 字符。

1.1.12

-在一个#include I被检测出来后和宏置换被执行后,期望一个文件的规范格式 或 \filename\

1.1.13 -13-不好的类型

类型形容词例如long、unsigned 等等。不能应用到紧跟的类型。

1.1.14 -14- 符号 'Symbol' 以前定义过(位置)

符号被定义第二次。提供出以前定义的位置,如果这是一个暂定的定义(没有初始化),这个消息可以用+fmd flag抑制。(章节5.5Flag 选项).

1.1.15

-15-符号'Symbol'重新被声明(TypeDiff) (位置)

符号被以前声明过或在其它模块定义过(其它位置)的类型和在当前位置的声明的类型不同。参数TypeDiffr提供了类型怎么不同的进一步信息(见章节17. 信息).

1.1.16 -16-不认识的名字

一个# 指示符后没有跟着一个可认识的单词。如果这不是错误使用+ppw 选项(章节5.7其它选项).

1.1.17 -17-未被承认的名称

A non-parameter is being declared where only parameters should be. 1.1.18 -18-符号重新声明(TypeDiff) 和此位置冲突

一个符号被重新声明。参数TypeDiff 提供类型不同的进一步信息(见Chapter 17. 信息)。位置是先前定义的位置。

1.1.19 -19-无效的声明

一个类型独自的出现而没有相关的变量,类型不是struct、union 和 enum. 一个双分号能导致这个:

int x;;

1.1.20 -20-非法使用 =

一个函数声明后紧跟一个符号.

1.1.21

-21-期望{

对于不确定大小的数组的初始化必须以一个左括号开始。

1.1.22 -22-非法的操作符

发现一个一元操作符紧跟一个操作数,这个操作符不是一个post 操作符。

1.1.23

-23-期望“:”

-碰到一个 ? 操作符, o但是没有紧跟一个期望的 : 操作符。

1.1.24 -24-期望一个表达式,但是得到一个字符串

发现一个在一个表达式开始的操作符,但是它不是一个一元操作符。

1.1.25

-25-非法的常量

在一个字符常量中遇到太多的字符。

1.1.26 -26-期望一个表达式,但是得到一个字符串 1.1.27

-27-非法的字符(0xff)

源代码中发现非法的字符。消息中提供十六进制代码。 假定是一个空格。如果你使用奇怪的字符在标识符名称中,你将得到这个信息。你可以使用选项 - ident (见章节5.7其它选项.)

1.1.28 -28-重定义一个符号(符号位置)

给出的在以前(Location)声明的冒号前的标识符不是一个label.

1.1.29

-30-期望一个常量

期望一个常量,但是没有得到。可能是在case 关键字后, 数组维数、bit field 长度、 枚举指、#if 表达式等等.

1.1.30 -31-重新定义一个符号(Symbol' conflicts with Location) 数据对象或函数在此模块中以前定义过又被定义。

1.1.31 -32 -Field 大小 (member 'Symbol') 不能是0

给出的field

的长度是非正(0或负数).

1.1.32 -33- 非法常量

当一个8进制的常量包含数字8或9时,这是一个错误的形式。

1.1.33 -34- 非常量初始化

-在一个static数据项中发现非常量初始化.

1.1.34 -35- 初始化有副作用

在一个static数据项中发现有副作用的初始化.

1.1.35 -36- 重新定义存储类的符号 'Symbol' 和位置Location冲突 对象的存储类被改变.

1.1.36 -37- 枚举值'Symbol' 不一致(和位置Location冲突)

枚举值不一致.

1.1.37 -38-符号 'Symbol' 的偏移量不一致(Location)

很多类或结构比早期的声明出现在不同的位置(从结构开始的偏移量).可能因为数组维数从一个模块到另一个模块的改变.

1.1.38 -39- 重新定义符号 'Symbol' c和位置 Location 冲突

struct 或 union 被重新定义.

1.1.39 -40- 没有声明标识符'Name'

在表达式内, 一个标识符在以前没有被声明并且没有紧跟一个左括号. Name 是标识符的名称.

1.1.40 -41- 重新定义符号'Symbol'

一个宏或函数的参数被重新定义.

1.1.41 -42-期望一个语句

1.1.42 -43-变量 'Symbol'虚的类型

在一个实例的上下文中发现虚类型例如void类型.

1.1.43 -44-需要一个switch

在一个switch外出现case或default语句.

1.1.44 -45-错误的使用register

一个变量被声明为register ,但是它的类型不应该是register (例如一个函数).

1.1.45 -46-域类型应该是int

在结构中位域应该是类型为unsigned 或 int. 如果你的编译器允许其它类型,例如char, 那么抑制这条信息.

1.1.46 -47-错误的类型

一元减需要一个算术操作数.

1.1.47 -48-错误的类型

一元的 * 或左手边的指针

(->) 操作符需要一个指针操作数o.

处理器是在它

1.1.48 -49-期望一个类型

在原型内只有类型被允许。原型是圆括号内有一系列的类型的函数声明.

检测到至少圆括号内的一个类型时,期望更多的类型或关闭的右圆括号.

1.1.49 -50-试图取非左值的地址

一元 & 操作符需要一个左值(对分配操作符左手边合适的值).

1.1.50 -51-期望整型

一元 ~ 期望一个整型(signed 或unsigned char、short、int、或long).

1.1.51 -52-期望一个左值

自动递减(--) 和自动递增(++) 操作符需要一个左值(对分配操作符左手边合适的值)。记住括号不产生左值。因此

++(char *)p;

按照ANSI标准是非法的。一些编译器允许这个结构,允许你使用+fpc 选项(指针括号是左值). (见章节5.5Flag选项.)

1.1.52 -53-期望一个标量

自动递减(--) 和自动递增(++) 操作符可能只应用于标量(算术和指针)或这些操作符定义的对象.

1.1.53 -54-被0除

常量0 w被用于除操作符 (/) 或取余操作符的右手边。

1.1.54 -55-坏类型

上下文需要一个标量、函数或结构(除非-fsa).

1.1.55 -56-坏类型

需要标量类型和指针的加/减操作符可能被加到指针中。

1.1.56 -57-坏类型

Bit 操作符( &, | 和 ^ ) 需要require 整型参数.

1.1.57 -58-坏类型

错误的参数给相关的操作符;这些通常需要两个标量和指针,不能和整数比较(除非常量0).

1.1.58 -59-坏类型

移位的数量必须是整数.

1.1.59 -60-坏类型

被移位的值必须是整数.

1.1.60 -61-坏类型

上下文需要一个布尔值. 布尔值必须是算术或指针形式.

1.1.61 -62-对操作符':'矛盾的的类型(TypeDiff)

? :的第二和第三个参数必须是一致的类型.

1.1.62 -63-期望一个左值

分配操作符期望它的第一个操作数是一个左值. 请注意a cast removes the lvaluedness of an expression. 参考flag +fpc 在章节5.5 Flag选项.

1.1.63 -64-类型不匹配(Context) (TypeDiff)

T在分配中有类型不匹配(或隐含分配,见Context)。TypeDiff 确定类型的区别. 当分配一些种类的指针时用选项 -epn, -eps, -epu, -epp (章节5.2错误禁止选项) 来抑制这个消息.

1.1.64 -65-期望一个成员名称

在一个 (.) 或 (->) 操作符后,一个成员名称应该出现.

1.1.65 -66-坏类型

用一个不允许的void 类型。如果一个void 类型放置在一个原型内,那么它必须只能是原型内的仅有类型。(参考错误号49.)

1.1.66 -67-不能从Type到 Type计算 试图非标量到整数计算.

1.1.67 -68-不能从Type到 Type计算 试图非标量到浮点数计算.

1.1.68 -69-不能从Type到 Type计算 涉及结构到结构或其它对象间的不匹配的转换. 1.1.69 -70-不能从Type到 Type计算

试图计算一个指针到一个非寻常的类型(非整数)间的计算.

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库PClint检查项目在线全文阅读。

PClint检查项目.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/483565.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: