专业编程基础技术教程

网站首页 > 基础教程 正文

编码规范-C++:所有switch都应有个默认标签作为最后一个case标签

ccvgpt 2024-11-03 13:20:23 基础教程 38 ℃

编号

CFL#002

编码规范-C++:所有switch都应有个默认标签作为最后一个case标签

标题

所有 switch 语句都应有一个默认标签作为最后一个 case 标签

语言

C++

级别

2

类别

控制流

规范说明

所有 switch 语句都应有一个默认标签作为最后一个 case 标签

  • 示例
switch (c)
{
case c0:	// fall-through
case c1:
    {
        x;
        break;
    }
case c2:
    {
        y;
        break;
    }
default:	// always 'default' at end, even if no statement follows
    {
        z;	// possibly an assertion that this should not be reached
        break;	// leave break: in case this becomes a non-default case
    }
}

如果所有枚举值在 switch 语句中都明确用作 case 标签,则此规则不适用于枚举。如果 switch 主体中缺少枚举的某个枚举值,则此规则也会触发。这是为了确保在枚举扩展的情况下,不会忘记将新的枚举值添加到 switch 语句中。

enum Color { red, green, blue };
Color r = red;
switch (r)
{
    case red  : std::cout << "red\n";   break;
    case green: std::cout << "green\n"; break;
    case blue : std::cout << "blue\n";  break;
}

Tags:

最近发表
标签列表