C-переключатель "неизвестный" случай - PullRequest
0 голосов
/ 02 сентября 2018

Я недавно прочитал немного исходного кода терминала. Там я нашел этот кусок кода:

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

Что делает "неизвестное" ключевое слово (?)? Я не смог найти что-нибудь по «неизвестному» ключевому слову нигде. Спасибо в совете за помощь.

1 Ответ

0 голосов
/ 02 сентября 2018

В этом коде unknown это просто метка. C позволяет вам префикс любого заявления с меткой. Метка может использоваться как цель оператора goto.

Это в грамматике в C 2018 6.8.1, «Помеченные операторы»:

меченый-оператор
идентификатор : оператор
case константное выражение : выражение
по умолчанию : оператор

...

Любому оператору может предшествовать префикс, который объявляет идентификатор как имя метки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...