我最近读了一些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)
"未知"关键字(?)有什么作用?我无法在任何地方找到任何"未知"关键字.感谢您的建议.
在这段代码中,unknown只是一个标签.C允许您在任何带有标签的语句前面加上前缀.标签可以用作goto声明的目标.
这是C 2018 6.8.1中的语法,"标记语句":
labeled-statement:
identifier:statement
case constant-expression:statement
default:statement...
任何语句都可以在前缀之前声明标识符作为标签名称.