### PC-lint 错误码大全详解 #### 1. PC-Lint 错误号区间分配 PC-lint是一款强大的源代码静态分析工具,用于帮助开发者检查C/C++程序中的潜在错误。它通过一系列的错误号来标识各种可能出现的问题。错误号按照不同的类别进行划分,便于用户快速定位和解决问题。 - **语法错误**:编号范围从1到199(C语言)、1001到1199(C++语言)。这一类错误主要涉及到不符合语言规范的语法问题。 - **内部错误**:编号范围从200到299。这些错误通常与PC-lint自身的运行相关,而非用户的代码问题。 - **致命错误**:编号范围从300到399。这类错误会导致分析过程无法继续执行。 - **告警**:编号范围从400到699(C语言)、1400到1699(C++语言)。这些错误号标识的是可能存在的逻辑错误或其他需要注意的地方。 - **提示信息**:编号范围从700到899(C语言)、1700到1899(C++语言)。主要用于提供额外的信息或建议。 - **可选的注解**:编号范围从900到999(C语言)、1900到1999。这一类错误号主要用于标记那些可以通过特定选项来启用或禁用的检查项。 #### 2. C 语法错误详解 下面详细介绍了一些常见的C语言语法错误及其含义: - **1.2.1 未关闭注释**:如果文件结束时还存在一个未关闭的注释,会触发该错误。PC-lint会指出打开注释的位置。 - **1.2.2 未关闭的引号**:如果一行的末尾处有一个未关闭的引号(单引号或双引号),则会触发此错误。 - **1.2.3 #else 没有一个 #if**:在一个区域内有一个 `#else` 语句,但没有相应的 `#if`、`#ifdef` 或 `#ifndef` 语句与其匹配。 - **1.2.4 太多的 #if 嵌套层次**:如果检测到了一个内部的限制,通常是由于 `#if` 的嵌套层次过多导致的。 - **1.2.5 太多的 #endif**:当出现了一个 `#endif`,但它前面并没有对应的 `#if`、`#ifdef` 或 `#ifndef` 语句。 - **1.2.6 堆栈溢出**:这通常是因为太多的嵌套 `#if` 语句、`#include` 语句(包括所有递归的 `#include` 语句)、静态块(有限制的括号)或 `#define` 替换导致的。 - **1.2.7 不能打开 include 的文件**:如果在编译过程中无法找到或打开指定的头文件,则会触发此错误,并给出该文件的名称。 - **1.2.8 未关闭的 #if**:当一个 `#if`(或 `#ifdef` 或 `#ifndef`)语句没有相应的 `#endif` 结束时触发。 - **1.2.9 太多的 #else**:当一个给定的 `#if` 语句后面跟了多个 `#else` 或 `#elif` 而没有相应的 `#endif`。 - **1.2.10 期望的字符串**:如果某些特定的关键字(如 `__interrupt`)没有被正确识别,则会报错,并提示应使用正确的编译器选项或定义新的保留关键字。 - **1.2.11 超出大小范围**:在 `#include` 行中指定的文件名长度超过了系统限制。 - **1.2.12 需要 < or “**:当 `#include` 后面没有跟随标准的 `<filename>` 或 `"filename"` 形式时触发。 - **1.2.13 不好的类型**:当类型修饰符(如 `long`、`unsigned` 等)被错误地应用于非兼容类型时触发。 - **1.2.14 符号 'Symbol' 以前定义过**:如果一个符号被重复定义,PC-lint会报告并显示之前的定义位置。 - **1.2.15 符号 'Symbol' 重新被声明**:如果一个符号之前已经被声明过或者在其他模块中被定义过,且当前声明的类型与之前的不同,则会触发此错误。 - **1.2.16 不认识的名字**:在 `#` 指示符后面出现了不可识别的关键字。 - **1.2.17 未被承认的名称**:在一个只允许参数的地方声明了一个非参数实体。 - **1.2.18 符号重新声明**:当一个符号被重复声明,且类型不同。 - **1.2.19 无效的声明**:如果一个类型单独出现,且没有任何相关的变量声明(例如:`int x;;`)。 - **1.2.20 非法使用 =**:当函数声明后紧跟一个赋值操作。 - **1.2.21 期望 {**:对于不确定大小的数组初始化,必须以一个左括号 `{` 开始。 - **1.2.22 非法的操作符**:当一个一元操作符紧跟一个操作数,但该操作符不是一个后缀操作符。 以上列举了PC-lint中常见的C语言语法错误及其解释,了解这些错误可以帮助开发人员更快地定位和修复代码中的问题,从而提高软件的质量和可靠性。
剩余100页未读,继续阅读
- 粉丝: 528
- 资源: 4
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- RHCE linux下的火墙管理 及下载
- ESP32-C3FH4 : UltraLowPower SoC with RISCV SingleCore CPU Supporting 2.4 GHz WiFi and Bluetooth LE
- 用于解包和反编译由 Python 代码编译的 EXE 的辅助脚本 .zip
- 用于自动执行任务的精选 Python 脚本列表.zip
- 全国IT学科竞赛蓝桥杯的比赛特点及参赛心得
- 用于编码面试审查的算法和数据结构 .zip
- 用于操作 ESC,POS 打印机的 Python 库.zip
- 用于控制“Universal Robots”机器人的 Python 库.zip
- 用于控制 Broadlink RM2,3 (Pro) 遥控器、A1 传感器平台和 SP2,3 智能插头的 Python 模块.zip
- 用于接收和交互来自 Slack 的 RTM API 的事件的框架.zip