当前位置: 首页 > news >正文

【MISRA C 2012】Rule 2.6 函数不应该包含未使用的标签声明

  • 1. 规则
    • 1.1 原文
    • 1.2 分类
  • 2. 关键描述
  • 3. 代码实例

1. 规则

1.1 原文

Rule 2.6 A function should not contain unused label declarations
Category Advisory
Analysis Decidable, Single Translation Unit
Applies to C90, C99

1.2 分类

规则2.6:函数不应该包含未使用的标签声明
Advisory建议类规范。

2. 关键描述

如果声明了一个标签但没有使用,那么审阅者就不清楚这个标签是多余的还是错误地没有使用。

3. 代码实例

例1,规范中例程:
其中,label1是没有使用到的函数块,是不允许的。

void unused_label ( void )
{int16_t x = 6;label1:  /* 代码中没有使用,不合规的 */use_int16 ( x );
}

例2,使用397 MCAL测试工程中的为例,如下代码中Adc_SWGroupDemo是没有被使用到的接口,如果ADC使用中断周期处理,Adc_SWGroupDemo应该删除,属于没有被使用到的定义

/******************************************************************************
** Syntax : void Adc_SWGroupDemo(void)                                       **
**                                                                           **
** Service ID:   : NA                                                        **
**                                                                           **
** Sync/Async:   : Synchronous                                               **
**                                                                           **
** Reentrancy:   : Non Reentrant                                             **
**                                                                           **
** Parameters (in): none                                                     **
**                                                                           **
** Parameters (out): none                                                    **
**                                                                           **
** Return value    : none                                                    **
**                                                                           **
** Timing         : Fixed Cyclic/Variable Cyclic                             **
**                                                                           **
** Description : This routine will start the SW Group Configured as:         **
**               Conversion mode     : Continuous                            **
**               Result Access mode  : Streaming, Linear                     **
**               Streaming Length    : 5                                     **
**               Channels in a groups: AN1, AN0                              **
**               Result buffer       : ADC_SW_GRP_RES[5][2]                  **
**               Conversion is stopped automatically when once configured    **
**               number of samples are captured                              **
**               Read and print the latest conversion result using pointer   **
**               returned from API Adc_GetStreamLastPointer                  **
******************************************************************************/
void Adc_SWGroupDemo(void)
{static uint8 grpNum = 0;static uint16 adc_delay_time_us;adc_delay_time_us = 0;do{//BspStm_waitTime(1);delay_ms(1);adc_delay_time_us++;}while((g_stAdcCfg.AdcConvertflag[grpNum] == ADC_Convert_Busy) && (adc_delay_time_us<100));Adc_StartGroupConversion(g_grpIndex[0]);Adc_StartGroupConversion(g_grpIndex[1]);Adc_StartGroupConversion(g_grpIndex[2]);adc_delay_time_us = 0;do{//BspStm_waitTime(1);delay_ms(1);adc_delay_time_us++;}while((g_stAdcCfg.AdcConvertflag[grpNum] == ADC_Convert_Busy) && (adc_delay_time_us<100));uint8 i;for (i = 0; i < 3; i++) {fVoltage[grpNum][i] =  G0_ResultPtr[grpNum][i] * 3.3f / 4096;}grpNum++;if (grpNum > 2) {grpNum = 0;}} /* Adc_SWGroupDemo *//*******************************************************************************
** Syntax : void DemoApp_Adc_Init(void)                                       **
**                                                                            **
** Service ID:   : NA                                                         **
**                                                                            **
** Sync/Async:   : Synchronous                                                **
**                                                                            **
** Reentrancy:   : Reentrant                                                  **
**                                                                            **
** Parameters (in): none                                                      **
**                                                                            **
** Parameters (out): none                                                     **
**                                                                            **
** Return value: none                                                         **
**                                                                            **
** Description : Initialize ADC module                                        **
*******************************************************************************/
void DemoApp_Adc_Init(void)
{SRC_VADCG2SR0.U |= SRE_ENABLE;// SRC_VADCG8SR0.U |= SRE_ENABLE;const Adc_ConfigType * ConfigPtr = NULL_PTR;ConfigPtr = &Adc_Config;Adc_Init(ConfigPtr);Adc_TriggerStartupCal();/* Wait till the StartUp calibration is over */while(Adc_GetStartupCalStatus() != ADC_STARTUP_CALIB_OVER) {}/* Initialize ADC interrupt */IrqAdc_Init();SRC_VADC_G2_SR0.B.SRE = 1U;SRC_VADC_G2_SR1.B.SRE = 1U;SRC_VADC_G2_SR2.B.SRE = 1U;SRC_VADC_G2_SR3.B.SRE = 1U;SRC_VADC_G3_SR0.B.SRE = 1U;SRC_VADC_G8_SR0.B.SRE = 1U;Std_ReturnType lRetVal;lRetVal = Adc_SetupResultBuffer(g_grpIndex[0], G0_ResultPtr[0]);if(lRetVal != E_NOT_OK) {Adc_EnableGroupNotification(g_grpIndex[0]);Adc_StartGroupConversion(g_grpIndex[0]);} else {/*Could not setup result buffer*/}lRetVal = Adc_SetupResultBuffer(g_grpIndex[1], G0_ResultPtr[1]);if(lRetVal != E_NOT_OK) {Adc_EnableGroupNotification(g_grpIndex[1]);Adc_StartGroupConversion(g_grpIndex[1]);} else {/*Could not setup result buffer*/}lRetVal = Adc_SetupResultBuffer(g_grpIndex[2], G0_ResultPtr[2]);if(lRetVal != E_NOT_OK) {Adc_EnableGroupNotification(g_grpIndex[2]);Adc_StartGroupConversion(g_grpIndex[2]);} else {/*Could not setup result buffer*/}
}

相关文章:

【MISRA C 2012】Rule 2.6 函数不应该包含未使用的标签声明

1. 规则1.1 原文1.2 分类 2. 关键描述3. 代码实例 1. 规则 1.1 原文 Rule 2.6 A function should not contain unused label declarations Category Advisory Analysis Decidable, Single Translation Unit Applies to C90, C99 1.2 分类 规则2.6&#xff1a;函数不应该包含…...

Ubuntu:使用apache2部署Vue开发的网站

作者:CSDN @ _乐多_ 本文记录了Vue项目打包到部署到ubuntu系统的全部步骤。 文章目录 一、代码打包二、安装 Apache2三、开启/关闭apache23.1 开启3.2 关闭四、部署Vue应用到Apache24.1 首次部署4.2 更新部署五、全部操作截图一、代码打包 首先,确保您已经在本地开发环境中…...

使用IO完成端口实现简单回显服务器

说明 使用IO完成端口实现简单回显服务器&#xff0c;因为是测试用的&#xff0c;所以代码很粗糙。 提醒 使用的是ReadFile、WriteFile来实现Overlapped IO&#xff0c;正式场合应该用WSARecv、WSASend&#xff0c;原因&#xff1a;来自《Windows网络编程技术》 8.2.5节 在这里…...

【ROS】Nav2源码之nav2_behavior_tree详解

1、简介 nav2_bt_navigator实现ROS2节点以行为树的方式来处理。 nav2_behavior_tree模块提供如下功能: 一个c模板类&#xff0c;可以轻松地将ROS2 动作(actions)和服务(services)集成到行为树(Behavior Trees)中。特定于导航的行为树节点。通用的BehaviorTreeEngine类&#…...

SpringBoot---myBatis数据库操作

一&#xff0c;分页查询 现在controller中设置参数&#xff0c;RequestParam(defaultValue "1") 设置默认值 GetMapping public Result page(RequestParam(defaultValue "1") Integer page,RequestParam(defaultValue "10") Integer pageSize…...

力扣541.反转字符串II

原题链接&#xff1a;力扣541.反转字符串II 思路&#xff1a; 其实在遍历字符串的过程中&#xff0c;只要让 i (2 * k)&#xff0c;i 每次移动 2 * k 就可以了&#xff0c;然后判断是否需要有反转的区间。 因为要找的也就是每2 * k 区间的起点&#xff0c;这样写&#xff0c…...

撕掉Hadoop标签,Cloudera未来可期吗?

Cloudera&#xff1a;大数据的弄潮儿 1、Cloudera发展史2、透过Cloudera看清大数据时代的转变3、参考文章 1、Cloudera发展史 说起Cloudera&#xff0c;就不得不提起Hadoop&#xff0c;Cloudera的过去就是Hadoop时代中的一个缩影。作为全球第一家也是最大一家Hadoop商业化公司&…...

排序算法(1)

这里写目录标题 排序插入排序直接插入排序希尔排序 选择排序直接选择排序堆排序向下调整堆排序 交换排序冒泡排序 排序 插入排序 直接插入排序 直接插入排序是O&#xff08;N^2&#xff09;的排序算法 从0下标开始往后排 void InsertSort(int* a,int n)//直接插入排序 {fo…...

Top 5 Cutting-edge technology examples 2023

文章目录 Top 5 Cutting-edge technology examples 20231、Computer Vision2、Natural Language Processing3、Virtual Reality & Augmented Reality4、Deep Machine Learning5、Neuralink Top 5 Cutting-edge technology examples 2023 Cutting-edge technology in 2023 …...

【算法|滑动窗口No.3】leetcode3. 无重复字符的最长子串

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】【LeetCode】 &#x1f354;本专栏旨在提高自己算法能力的同时&#xff0c;记录一下自己的学习过程&#xff0c;希望…...

元素的水平居中和垂直几种方案

总结一下各种元素的水平居中和垂直居中方案。 水平居中&#xff1a; 1.行内元素水平居中 text-align: center 定义行内内容&#xff08;例如文字&#xff09;如何相对它的块父元素对齐;不仅可以让文字水平居中&#xff0c;还可以让行内元素水平居中 注意&#xff1a;给行内…...

JS和JQuery的区别

JS和jQuery都是用于前端开发的工具&#xff0c;但是它们有一些重要的区别。主要区别如下&#xff1a; JS是一种编程语言&#xff0c;而jQuery是一个JS库。JS可以与其他语言一起使用&#xff08;如PHP、Python等&#xff09;&#xff0c;而jQuery是JS的一个扩展&#xff0c;只能…...

延时摄影视频制作工具 LRTimelapse mac中文版特点介绍

lrTimelapse mac是一款适用于 Windows 和 macOS 系统的延时摄影视频制作软件&#xff0c;可以帮助用户创建高质量的延时摄影视频。该软件提供了直观的界面和丰富的功能&#xff0c;支持多种时间轴摄影工具和文件格式&#xff0c;并具有高度的可定制性和扩展性。 lrTimelapse ma…...

Mac电脑怎么运行 Office 办公软件

虽然 Office 软件也有 Mac 版本的&#xff0c;但是有蛮多小伙伴用起来还是感觉不得劲&#xff0c;毕竟接触了太久的 Windows&#xff0c;所以想要使用 Windows 版本的 Office 软件。 今天就给大家介绍一下怎么在 Mac 电脑中运行 Windows 版本的办公软件&#xff0c;在这里就需…...

FPGA 如何 固化程序到 FLASH中

1、导出Hardware 2、导出bit文件 3、打开SDK 4、 点击Ok 5、创建工程 6、 输入工程名称&#xff1a;guhua 7、选择 Zynq FSBL 8、单击 guhua、然后点击 build 点击&#xff1a;build all 9、 右键之后&#xff0c;点击&#xff1a;Creat Boot Image 10、点击 Cr…...

电源管理(PMIC)MAX20428ATIA/VY、MAX20428ATIC/VY、MAX20428ATIE/VY适合汽车ADAS应用的开关稳压器

一、概述 MAX20428是一款高效率、八路输出、低压PMIC。OUT1将输入电源升压至5V&#xff0c;电流高达500mA&#xff0c;而三个同步降压转换器的输入电压范围为3.0V至4.2V&#xff0c;输出电压范围为0.8V至3.9875V&#xff0c;峰值电流分别高达1.3A、1.3A和3.5A。三个300mA pMOS…...

十年JAVA搬砖路——Linux搭建Ldap服务器。

1.安装命令 yum -y install openldap compat-openldap openldap-clients openldap-servers openldap-servers-sql openldap-devel2.启动ldap systemctl start slapd systemctl enable slapd3.修改密码 slappasswd Aa123456获得返回的密码加密密码串&#xff1a; {SSHA}DkSw0…...

论文 辅助笔记:t2vec train.py

1 train 1.1 加载training和validation数据 def train(args):logging.basicConfig(filenameos.path.join(args.data, "training.log"), levellogging.INFO)设置了日志的基本配置。将日志信息保存到名为 "training.log" 的文件中日志的级别被设置为 INFO&…...

同时标注分割、检测、多分类属性的工具

1、 https://blog.csdn.net/minstyrain/article/details/82385580/ 2、 https://zhuanlan.zhihu.com/p/656703406...

LeetCode75——Day24

文章目录 一、题目二、题解 一、题目 2390. Removing Stars From a String You are given a string s, which contains stars *. In one operation, you can: Choose a star in s. Remove the closest non-star character to its left, as well as remove the star itself.…...

Go 内存优化骚操作

1. 零内存占位符&#xff1a;struct{}{}原理&#xff1a;struct{} 是空结构体&#xff0c;Go 编译器对其做了特殊处理&#xff0c;它在内存中不占任何空间&#xff08;大小为 0 字节&#xff09;。场景 A&#xff1a;实现集合 (Set)map[string]struct{}。比起 map[string]bool&…...

运放电源端串联磁珠

在运放电源端串联磁珠&#xff0c;是一种常见的高频噪声抑制设计手段&#xff0c;但需结合具体应用场景谨慎使用。以下是关键要点&#xff1a;---作用与目的 - 抑制高频噪声&#xff1a;磁珠对高频信号&#xff08;通常 >10 MHz&#xff09;呈现高阻抗&#xff0c;将电源线上…...

2026年SSL证书市场便宜且安全的SSL证书调研

随着互联网安全标准的不断升级&#xff0c;HTTPS加密已成为网站和各类数字应用的“标配”。然而&#xff0c;对于广大的中小企业、个人开发者以及初创团队而言&#xff0c;如何在控制成本的前提下&#xff0c;获取一张既便宜又足够安全的SSL证书&#xff0c;始终是一道棘手的难…...

向量库+RAG+大模型在医疗AI中为何常显不足?揭秘图谱如何重塑医疗知识系统信任度!

文章指出&#xff0c;在医疗AI领域&#xff0c;单纯依赖向量库RAG大模型的经典路线已显不足。医疗场景对知识系统的要求远超“语义相似度”&#xff0c;涉及适应症、禁忌症、证据等级等严格约束。知识图谱在医疗AI中的重要性日益凸显&#xff0c;它不仅能够构建知识间的关系网络…...

告别繁琐操作:用VSCode插件‘Open in Browser’和‘CSS Peek’打造流畅的实时预览调试工作流

极速开发实战&#xff1a;VSCode插件组合拳实现HTML/CSS无缝调试 每次修改完CSS样式都要手动切换到浏览器刷新页面&#xff1f;在庞大的代码库中寻找某个CSS定义像大海捞针&#xff1f;这些问题困扰着无数前端开发者。今天我们将解锁VSCode中两个看似简单却威力巨大的插件——O…...

端到端关键词识别技术范式:WeKWS在边缘计算场景下的架构创新与实践

端到端关键词识别技术范式&#xff1a;WeKWS在边缘计算场景下的架构创新与实践 【免费下载链接】wekws Production First and Production Ready End-to-End Keyword Spotting Toolkit 项目地址: https://gitcode.com/gh_mirrors/we/wekws 在物联网设备普及的今天&#x…...

实测Taotoken在多模型调用下的延迟与稳定性体感

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 实测Taotoken在多模型调用下的延迟与稳定性体感 1. 引言 在集成多个大模型API到实际业务或开发工作流时&#xff0c;开发者通常需…...

体验Taotoken全球节点带来的低延迟API调用体感

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 体验Taotoken全球节点带来的低延迟API调用体感 对于需要频繁调用大模型API的开发者而言&#xff0c;除了模型的智能程度&#xff0…...

Wordpress网站使用siteground security optimizer 及 translatepress多语言插件的翻译问题

问题&#xff1a;发现有的页面翻译出错&#xff0c;如下图&#xff1a;经排查&#xff0c;原因是 SiteGround 主机安全插件中的“锁定并保护系统文件夹”功能&#xff0c;阻止了 TranslatePress 插件的 trp-ajax.php 文件正常执行。解决方法&#xff1a;将 trp-ajax.php 加入白…...

告别踩坑!手把手教你用Cobalt Strike 4.7在Kali Linux上快速搭建团队服务器并上线第一台主机

Kali Linux环境下Cobalt Strike 4.7团队服务器部署与主机上线实战指南 在渗透测试和红队演练中&#xff0c;Cobalt Strike作为一款成熟的商业框架&#xff0c;其团队协作功能和丰富的攻击模拟能力备受安全从业者青睐。本文将基于Kali Linux系统&#xff0c;详细解析Cobalt Stri…...