c -switch "unknown" case

4

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

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

"unknown"关键字是什么?我无法在任何地方找到关于“unknown”关键字的信息。 感谢您的帮助。
1个回答

7
在这段代码中,unknown 只是一个标签。C允许在任何语句前加上标签。该标签可作为 goto 语句的目标使用。
这个语法在 C 2018 中的 6.8.1 “Labeled statements” 中有说明:

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

任何语句都可以以一个前缀开头,用来声明一个标识符作为标签名称。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接