[英]MISRA C:2012 Rule-17.7
我收到以下代码的 MISRA C:2012 Rule-17.7 违规。 我对 C 代码和 MISRA 概念很陌生。 任何建议将不胜感激。
5277: Dem_SetEventStatus(Rte_PDAV_DemEvent_DtcC00100_1, EventStatus);
^
Msg(7:3200) 'Dem_SetEventStatus' returns a value which is not being used.
MISRA C:2012 Rule-17.7
背景
诊断事件管理器 (Dem) 是AUTOSAR诊断服务的基本软件模块。 相关错误从应用层(resp. SW-C)或基本软件模块(BSWM)报告。
诊断事件管理器 (Dem) 处理并存储诊断监视器在软件组件 (SW-C) 和基本软件模块 (BSWM) 中检测到的诊断事件。 存储的事件信息可通过与其他 BSW 模块或 SW-C 的接口获得。
Function Dem_SetEventStatus()
这个function有一个原型:
Std_ReturnType Dem_SetEventStatus(
Dem_EventIdType EventId,
Dem_EventStatusType EventStatus
)
请注意,返回类型是Std_ReturnType
- 返回E_OK
或E_NOT_OK
MISRA C:2012 规则 17.7
MISRA C:2012 规则 17.7 要求您对从(非void
)function... 返回的值执行某些操作
function 告诉你一些事情......它要么成功E_OK
要么失败E_NOT_OK
- 忽略此信息可能不是一个好主意。
如果你真的想忽略它,那么坚持(void)
演员 - 但确保你添加一个很好的明确理由这样做。
查看隶属关系的个人资料
Dem_SetEventStatus
返回带有一些值的标准返回类型(例如, EOK
和E_NOT_OK
)
如果 API 成功地完成了它应该做的事情,那么你会得到E_OK
,如果弹出一些错误,那么你会得到E_NOK
如果出现错误指示,您可能需要重试设置事件或忽略处理功能的策略。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.