我非常喜欢在 enum-switch-case 中跳过“默认:”标签。因此,当枚举具有未由 switch-case 处理的新值时,我会收到编译器警告。
现在一位同事说,当将一个整数传递给枚举未涵盖的这个 switch-case 时,我会遇到分段错误。
至少我们正在使用的 gcc 可以正确处理它。Visual Studio 文档还说:如果“没有一个常量与 case 标签中的常量匹配并且默认标签不存在 >>> 控制权转移到 switch 语句之后的语句。”
这是标准以及所有(或至少大多数)编译器的行为吗?