c++ - C++ 切换空默认情况
问题描述
我想我过去曾被宽松的编译器误入歧途。我一直很高兴地处理类似的事情
int main()
{
int g = 3;
switch (g) {
case 1: ++g;
break;
case 2: g+=2;
break;
default:
// do nothing
}
return g;
}
编译没有问题。但最近我遇到了编译器错误。
将默认大小写修改为
default:
// do nothing
break;
}
甚至
default:; // do nothing
}
使编译器高兴。 cppreference不清楚。语法在其后放置了一条语句default
,似乎暗示在 之后需要一些东西default:
。这甚至可能是一个空语句,因此您甚至不需要break
,只需一个分号即可。关于语句s 的部分不清楚标签是否可以出现在复合语句的末尾。
那么,default:
在右大括号之后但之前什么都没有的开关是否格式良好?在旧版本的 C 或 C++ 中是否可行?
(请注意,这与是否包含默认值无关。此外,您需要假设默认值不做任何事情是合法的。此外,这个问题很接近,但没有雪茄。)
解决方案
推荐阅读
- maven - 如何在自定义插件中获取 Maven 依赖项的位置?
- javascript - 显示表格 - vanilla JS 等价物
- angular - 如何根据每个帖子显示评论。我正在使用 https://jsonplaceholder.typicode.com
- c - 破折号和 C: eval "$(
我想使用 C 中的system()函数来评估文件cmdfile中的表达式,但我得到的结果与直接在命令行上执行的结果不同。cmdfile的内容如下:
$ cat
- python - 当父母在字典中为空时安全获取
- javascript - 如何从前端处理 jsonwebtoken
- arrays - 在powershell中导出到csv时如何选择对象类型
- python - Python Regex 用 char 替换所有直接后跟 char 的换行符
- python - django.db.utils.IntegrityError:重复键值违反唯一约束,而 4 行中有 2 行不同
- python - 我如何知道调用当前函数的按钮的名称?