小编Jam*_*mes的帖子

不寻常的 switch 语句标签 - 为什么这不是语法错误?

我继承了一个非常古老(超过 15 年)的 C++ 程序,该程序当前使用 IBM 的 xlc 编译器在 AIX 上运行。我遇到了一个 switch 语句,但我不明白它是如何工作的。

\n

下面是一个显示这种情况的最小示例。

\n
#include <iostream>\nusing namespace std;\n\nint main()\n{\n        int i=5;\n\n        switch( i ) {\n                case 1:\n                        cout << "case " << i << endl;\n                        break;\n                case 2:\n                        cout << "case " << i << endl;\n                        break;\n                Otherwise:\n                        cout << "case " << i << endl;\n                        break;\n        }\n        cout << "bye\\n";\n}\n
Run Code Online (Sandbox Code Playgroud)\n

我在 Amazon Linux 2 上使用 GCC 7.3.1。该程序编译良好并显示以下输出:

\n
bye\n
Run Code Online (Sandbox Code Playgroud)\n

如果我添加“-Wall”,那么它会告诉我以下内容:

\n
minex.C: In function \xe2\x80\x98int …
Run Code Online (Sandbox Code Playgroud)

c++ switch-statement

4
推荐指数
1
解决办法
336
查看次数

标签 统计

c++ ×1

switch-statement ×1