crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Устройство Даффа
Litkevich Yuriy
  опции профиля:
сообщение 4.4.2011, 8:20
Сообщение #1


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9668
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Никогда бы не подумал, что это корректный код:
#include <stdio.h>

send(int count) {
    if (!count) return;
    int n = (count + 7) / 8;
    switch (count % 8) {
      case 0: do { puts("case 0");
      case 7:      puts("case 7");
      case 6:      puts("case 6");
      case 5:      puts("case 5");
      case 4:      puts("case 4");
      case 3:      puts("case 3");
      case 2:      puts("case 2");
      case 1:      puts("case 1");
                 } while (--n > 0);
    }
}

main(int argc, char *argv[]) {
puts("duff's device.");
if (argc > 1) {
   int count = atoi(argv[1]);
   send(count);
}
}
Источник
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
abc
  опции профиля:
сообщение 4.4.2011, 12:55
Сообщение #2


Участник
**

Группа: Участник
Сообщений: 221
Регистрация: 16.12.2010
Из: СПб
Пользователь №: 2272

Спасибо сказали: 26 раз(а)




Репутация:   4  


да уж
впервые столкнулся с понятием "размотка цикла", так что пока всю чудесность не прочувствовал)

Сообщение отредактировал abc - 4.4.2011, 13:10
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 4.4.2011, 17:05
Сообщение #3


фрилансер
******

Группа: Участник
Сообщений: 2928
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


case - это, по сути, метка, полностью аналогичная той, которая ставится для goto. Но case можно ставить только внутри блока switch. В итоге в свиче может быть любой код, кроме моментов, когда обходится конструктор объекта - это компилятор не пропустит

вот ещё ссылочка в тему :)
http://club.shelek.ru/viewart.php?id=338
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 21.10.2021, 8:55