c -switch "unknown" 大小写

c -switch "unknown" case

我最近确实阅读了一些 st 终端源代码。在那里我确实找到了这段代码:

switch (csiescseq.mode[0]) {
default:
unknown:
    fprintf(stderr, "erresc: unknown csi ");
    csidump();
    /* die(""); */
    break;
case '@': /* ICH -- Insert <n> blank char */

"unknown" 关键字(?) 有什么作用?我无法在任何地方找到 "unknown" 关键字的任何内容。 感谢您的帮助。

在这段代码中,unknown只是一个标签。 C 允许您在任何语句前加上标签。该标签可用作 goto 语句的目标。

这是C 2018 6.8.1中的语法,“标签语句”:

labeled-statement:
    identifier : statement
    case constant-expression : statement
    default : statement

Any statement may be preceded by a prefix that declares an identifier as a label name.