主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

MISRA C:2012 Rule 23.8

A default association shall appear as either the first or the last association of a generic selection

自 R2024a 起

描述

规则定义

A default association shall appear as either the first or the last association of a generic selection 1 .

此规则来自 MISRA C™:2012 Amendment 3。

理由

default 关联是通用选择中的第一个或最后一个关联时,代码更易于阅读和理解。

Polyspace 实现

如果 _Generic 语句的 default 关联既不是第一个也不是最后一个关联,则 Polyspace® 会报告违反此规则。

故障排除

如果您预期会出现违规,但未看到该违规,请参阅诊断为何编码规范违规未按预期显示

示例

全部展开

在此示例中,default 关联既不是 get_type_id 的第一个关联,也不是最后一个关联。Polyspace 报告了违反此规则的情况。

 #define get_type_id(x) ( _Generic((x) /* Noncompliant */ \
                        , char : 0       \
                        , default : 3    \
	                    , int  : 1      ))


void foo() {
	int x, y;
	y = get_type_id(x);
}

检查信息

组:泛型选择
类别:必需
AGC 类别:必需

版本历史记录

在 R2024a 中推出


1 All MISRA coding rules and directives are © Copyright The MISRA Consortium Limited 2021.

The MISRA coding standards referenced in the Polyspace Bug Finder™ documentation are from the following MISRA standards:

  • MISRA C:2004

  • MISRA C:2012

  • MISRA C:2023

  • MISRA C++:2008

  • MISRA C++:2023

MISRA and MISRA C are registered trademarks of The MISRA Consortium Limited 2021.