c -switch"未知"案例

flo*_*bue 4 c keyword

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

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

"未知"关键字(?)有什么作用?我无法在任何地方找到任何"未知"关键字.感谢您的建议.

Eri*_*hil 7

在这段代码中,unknown只是一个标签.C允许您在任何带有标签的语句前面加上前缀.标签可以用作goto声明的目标.

这是C 2018 6.8.1中的语法,"标记语句":

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

...

任何语句都可以在前缀之前声明标识符作为标签名称.