【MISRA C 2012】Rule 2.7 函数中不应有未使用的形参

编程入门 行业动态 更新时间:2024-10-24 01:48:05

【MISRA C 2012】Rule 2.7 函数<a href=https://www.elefans.com/category/jswz/34/1771233.html style=中不应有未使用的形参"/>

【MISRA C 2012】Rule 2.7 函数中不应有未使用的形参

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

1. 规则

1.1 原文

Rule 2.7 There should be no unused parameters in functions
Category Advisory
Analysis Decidable, Single Translation Unit
Applies to C90, C99

1.2 分类

规则2.7:函数中不应有未使用的形参
Advisory建议类规范。

2. 关键描述

大多数函数将被指定为使用它们的每个参数。如果函数参数未使用,函数的实现可能与规范不匹配。这条规则突出了这种潜在的不匹配

3. 代码实例

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

void withunusedpara (uint1 6_t *para1, int16_t unusedpara ) /* Non-compliant - unused */
{*para1 = 42U;
}

例2,判断以下代码

/*******************************************************************************
** Syntax : W25qxx_Spi(uint8_t Data, uint8_t *rData)                     **
**                                                                            **
** Service ID:   : NA                                                         **
**                                                                            **
** Sync/Async:   : Synchronous                                                **
**                                                                            **
** Reentrancy:   : Reentrant                                                  **
**                                                                            **
** Parameters (in): Data                                                      **
**                                                                            **
** Parameters (out): rData                                                    **
**                                                                            **
** Return value: uint8_t                                                      **
**                                                                            **
** Description : read/write data with SPI peri W25Q32 module                  **
*******************************************************************************/
uint8_t W25qxx_Spi(uint8_t Data, uint8_t *rData)
{uint32 LoopCount = 0;writebuf[0] = Data;Spi_WriteIB(W25QXX_CHANNEL_16BIT_IB_2, (uint8 *) &writebuf[0]);(void)Spi_SyncTransmit(W25QXX_SEQUENCE);while((Spi_GetSequenceResult(W25QXX_SEQUENCE) != SPI_SEQ_OK) && (LoopCount < W25QXX_SPI_TIMEOUT)) {if(Spi_GetSequenceResult(W25QXX_SEQUENCE) == SPI_SEQ_FAILED) {break;} else {/*Nothing*/}LoopCount++;}Spi_ReadIB(W25QXX_CHANNEL_16BIT_IB_2, (uint8 *)&readbuf[0u]);if(Spi_GetSequenceResult(W25QXX_SEQUENCE) == SPI_SEQ_OK) {return readbuf[0];} else {Spi_Cancel(W25QXX_SEQUENCE);return 0;}
}

其中rdata是出参,应该读取spi读出的数据,但是这里没有使用到,实际以return值为读取数据,入参指针并未使用到,因此不符合Rule 2.7规范。

更多推荐

【MISRA C 2012】Rule 2.7 函数中不应有未使用的形参

本文发布于:2023-11-30 12:57:53,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1650435.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:中不   函数   MISRA   Rule

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!