Невозможно получить доступ к переменной данных из функции в методе

Когда я впервые прочитал его, я автоматически отформатировал его на этом

void dsend(char* to, char* from, count) {
    int n = (count + 7) / 8;
    switch (count % 8) {
        case 0: do {
                *to = *from++;
                case 7: *to = *from++;
                case 6: *to = *from++;
                case 5: *to = *from++;
                case 4: *to = *from++;
                case 3: *to = *from++;
                case 2: *to = *from++;
                case 1: *to = *from++;
            } while (--n > 0);
    }
}

, и я понятия не имел, что происходит.

Возможно, нет, когда задан этот вопрос , но теперь Wikipedia имеет очень хорошее объяснение

. Устройство является действительным, законным C в силу двух атрибутов в C:

  • Расслабленная спецификация оператора switch в определении языка. Во время изобретения устройства это был первый выпуск языка программирования C, который требует только того, чтобы управляемая инструкция коммутатора была синтаксически корректным (составным) оператором, в котором метки меток могут отображаться с префиксом любого подзаголовка. В сочетании с тем фактом, что при отсутствии инструкции break поток контроля будет проходить через оператор, управляемый одним ярлыком case, на управляемый следующим, это означает, что код указывает последовательность копий count из последовательные исходные адреса на порт вывода с отображением памяти.
  • Возможность юридически переходить в середину цикла в C.
blockquote>

0
задан Wicked Strawberry 18 March 2019 в 15:21
поделиться