PC-Lint屏蔽告警的方法

2 篇文章 0 订阅

1 简述

下文为PC-Lint屏蔽告警的方法,包括单行屏蔽、代码块屏蔽和宏内嵌屏蔽
PC-Lint( MISRA 2012) 告警号原因见 PC-Lint error messages

2 PC-Lint选项的语法

在这里插入图片描述
官方给出的PC-Lint语法如上图。
支持C90的"// … "注释方式和C99的“/* … */”注释方式。有以下几点需要注意:

  1. lint必须为小写且紧挨着“//”或“/*”
  2. lint后可跟一个或多个Lint选项,Lint选项由‘-’、‘+’、‘!’三种符号开头
  3. Lint选项后可以有自定义的注释内容(optional commentary),但不能是‘-’、‘+’、‘!’三种符号开头

3 代码中屏蔽告警的方法

3-1 代码单行屏蔽

下图为官方示例,给出的C90,C99注释规范下的两种行屏蔽方式,只对单行代码有效。
需要注意的是,不要对宏使用单行注释。因为PC-Lint在代码编译预处理前检查源文件中的‘!’,来实现快速扫描。
代码单行屏蔽

单行屏蔽示例1,屏蔽904告警(函数结束前调用了return)

void fetctl_process(const void *para)
{
    if (para == NULL)
    {
        return; /*lint !e904 */
    }
    
    /* do something ... */
}

建议后面的可选注释中包含了对屏蔽告警的描述。为了阅读代码或代码评审时,知道屏蔽了哪些告警.
单行屏蔽示例2,下为改进后的代码,功能完全相同,但可读性更好。

    if (para == NULL)
    {
        return; /*lint !e904 Note 904: Return statement before end of function 'fetctl_process(void)' [MISRA 2012 Rule 15.5, advisory]*/
    }

3-2 代码块屏蔽

下图官方示例,在两条Lint注释之内的代码块(一行或多行),将屏蔽#621告警。
在这里插入图片描述

代码块屏蔽示例1,屏蔽730告警(简化版本和高可读性版本)

/*lint -save */
if (soft_i2c_write_bit(i2c_obj, !ack)  == FALSE)
{
    ret = FALSE;
}
/*lint -restore */
/*lint -save -e730 Boolean argument to function */
if (soft_i2c_write_bit(i2c_obj, !ack)  == FALSE)
{
    ret = FALSE;
}
/*lint -restore */

代码块屏蔽示例2,同时屏蔽了785和835两个告警

static const struct gpio_cfg gpio_cfg_list[] =
{
    /*lint -save -e785 -e835
     * Info 785: Too few initializers for aggregate 'unknown-name' of type 'const struct gpio_cfg'
     * Info 835: A zero has been given as left argument to operator '<<'*/
    {.io = PIN_TEST_LED,    .mode = GPIO_MODE_OUT_PP,   .state = GPIO_PIN_STATE_LOW,    .speed = GPIO_SPEED_LOW,    .alternate = GPIO_AF_NONE },
    {.io = PIN_ADC_NTC1,    .mode = GPIO_MODE_IN_AN,    .state = GPIO_PIN_STATE_UNKNOW, .speed = GPIO_SPEED_LOW,    .alternate = GPIO_AF_NONE },
    /*lint -restore */
};

3-3 宏屏蔽

在这里插入图片描述
宏内嵌Lint注释的方式如图。
即对宏注释必须嵌入到宏定义内,在宏定义右侧使用单行注释的方式无效。

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: PC-lint Plus是一款功能强大的代码静态分析工具,可以用于帮助开发人员在编码过程中发现和修复潜在的代码问题。下面是PC-lint Plus的使用教程: 1. 安装和配置:首先,需要下载PC-lint Plus的安装包并进行安装。安装完成后,需要配置PC-lint Plus的一些参数,例如源代码路径、预处理器宏的定义等。 2. 运行PC-lint Plus:在命令行中输入"Lint"命令,加上源代码文件的路径和其他参数,即可运行PC-lint Plus进行代码静态分析。 3. 分析报告:PC-lint Plus会生成一个详细的分析报告,其中包含了代码中存在的问题、警告和建议。开发人员可以根据报告中的信息来定位和修复代码问题。 4. 配置规则:PC-lint Plus提供了许多配置选项,可以根据项目的需求来自定义规则。开发人员可以通过修改配置文件或者使用命令行参数来启用或禁用某些规则,以及调整规则的严格程度。 5. 集成到开发环境:PC-lint Plus可以与各种集成开发环境(IDE)进行集成,例如Eclipse、Visual Studio等。这样可以在编码过程中实时检查代码,并提供实时的问题提示和建议。 6. 定期运行:为了保持代码的质量和可靠性,建议定期运行PC-lint Plus进行代码静态分析,以便及时发现和修复存在的问题。 总结来说,PC-lint Plus是一款强大的代码静态分析工具,可以帮助开发人员发现和修复代码中的问题。通过正确配置和使用PC-lint Plus,开发人员可以提高代码的质量和可靠性,从而更好地进行软件开发。 ### 回答2: PC-lint Plus 是一款广泛使用的静态代码分析工具,用于帮助开发人员在编程过程中发现潜在的问题和错误。以下是使用PC-lint Plus的一些简单教程: 1. 介绍安装和配置过程:首先,确保你已经从官方网站或其他可靠来源下载并安装了PC-lint Plus。安装完成后,你需要配置PC-lint Plus以适应你的项目。配置主要包括指定源代码文件、设置分析选项以及配置规则集。了解如何正确配置 PC-lint Plus 对于正确使用工具至关重要。 2. 运行静态代码分析:在你的命令行终端或集成开发环境(IDE)中输入相应的命令,以运行PC-lint Plus。指定你想要分析的源代码文件和其他选项,如配置文件等。运行后,PC-lint Plus会分析你的代码并生成报告。 3. 处理报告:在分析完成后,你会得到一个生成的报告文件。打开报告文件,查看其中列出的各种问题和错误。这些问题可能包括未使用的变量、潜在的内存泄漏、类型不匹配等。然后,根据报告中提供的建议和解决方案,逐一处理这些问题。 4. 理解规则和警告:PC-lint Plus会根据预定义的规则集来分析代码,并生成相应的警告和错误。不同的规则可能会检查不同的代码质量问题。了解这些规则和警告的含义非常重要,可以帮助你全面理解报告并采取正确的行动。 5. 配置自定义规则集和过滤器:除了默认的规则集外,你还可以根据项目的具体需求创建自定义的规则集和过滤器。通过这些自定义配置,你可以更好地适应项目要求并提高代码质量。 虽然这只是PC-lint Plus的简要教程,但它可以帮助你入门并开始使用这个强大的工具。随着对该工具的逐渐了解和熟练掌握,你将能够更有效地发现和解决代码中的问题,提高代码质量和开发效率。 ### 回答3: PC-lint Plus 是一种广泛应用的静态代码分析工具,可以帮助程序员发现潜在的编程错误和代码质量问题。下面是基本的使用教程: 1. 下载与安装:首先,从PC-lint Plus 的官方网站下载软件,并根据系统要求进行安装。 2. 配置:打开软件后,需要配置一些参数以适应你的项目。点击菜单栏中的“Options”,选择“Project Options”或“Workspace Options”,然后根据需要调整设置。例如,你可以指定编译器的版本、代码检查的规则等。 3. 创建配置文件:配置文件包含了静态代码分析的规则和设置。你可以使用默认配置文件,也可以创建新的配置文件。点击菜单栏的“File”,选择“New Configuration”,然后根据需要进行配置。 4. 运行分析:在主界面上选择你的源代码文件或者整个项目文件夹,然后点击菜单栏中的“Run”选项来启动静态分析。PC-lint Plus 会分析你的代码,并生成一个报告,指出潜在的编程错误和代码质量问题。 5. 查看和解决问题:在分析完成后,PC-lint Plus 会生成一个报告文件。你可以打开报告文件,逐一查看每个问题,并按照报告中提供的建议来修复问题。此外,你还可以使用软件自带的高级搜索功能来快速定位和解决问题。 6. 集成到开发环境:如果你使用的是支持集成的开发环境,如Eclipse、Visual Studio等,你可以将PC-lint Plus 集成到开发环境中,以便在代码编写过程中自动进行静态分析。 总体而言,PC-lint Plus 是一个功能强大的静态代码分析工具,能够帮助程序员提高代码质量和开发效率。通过适当的配置和使用,可以有效地发现和解决代码中的问题,提升软件的稳定性和可靠性。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值