Добро пожаловать, Гость. Пожалуйста авторизуйтесь здесь.
FGHIGate на GaNJa NeTWoRK ST@Ti0N - Просмотр сообщения в эхоконференции XSU.USELESS.FAQ
Введите FGHI ссылку:


Присутствуют сообщения из эхоконференции XSU.USELESS.FAQ с датами от 10 Jul 13 16:22:49 до 01 Aug 24 21:52:24, всего сообщений: 16058
Ответить на сообщение К списку сообщений Предыдущее сообщение Следующее сообщение
= Сообщение: 3505 из 16058 ================================= XSU.USELESS.FAQ =
От   : Alexey Vissarionov               2:5020/545         15 Mar 14 21:33:00
Кому : Soldatenkov Mitea                                   15 Mar 14 21:33:00
Тема : Switch и break
FGHI : area://XSU.USELESS.FAQ?msgid=2:5020/545+532492c2
На   : area://XSU.USELESS.FAQ?msgid=2:5020/113.61+492e0f91
= Кодировка сообщения определена как: CP866 ==================================
Ответ: area://XSU.USELESS.FAQ?msgid=2:5020/113.61+492e0fa1
==============================================================================
Доброго времени суток, Soldatenkov!
15 Mar 2014 20:21:54, ты -> мне:

AV>> Вполне себе канонiчное применение fallthrough...
SM> Если fallthrough сводится только к этому, то case EISDIR, ELOOP,
SM> ENAMETOOLONG: был бы куда логичнее и удобнее батареи break.

Не обязательно... Обычно в более раннем case делается что-то специфичное, а дальше проваливаемся в основной обработчик.

Вот пример с двойным fallthrough из линуксового ядра:

/* /usr/src/linux/fs/libfs.c */

int i = filp->f_pos;
switch (i)
{
 case 0:
        ino = dentry->d_inode->i_ino;
        if (filldir(dirent, ".", 1, i, ino, DT_DIR) < 0)
                break;
        filp->f_pos++;
        i++;
        /* fallthrough */
 case 1:
        ino = parent_ino(dentry);
        if (filldir(dirent, "..", 2, i, ino, DT_DIR) < 0)
                break;
        filp->f_pos++;
        i++;
        /* fallthrough */
 default:
        spin_lock(&dcache_lock);
        if (filp->f_pos == 2)
                list_move(q, &dentry->d_subdirs);

/* ... */

}

SM> Я думал кому-то вдруг понадобилась конструкция вида:
SM> case 1:
SM>         function1();
SM> case 2:
SM>         function2();

А чем плохо *(functions[2])(...) ? Стррррашными указателями на функции? :-)


--
Alexey V. Vissarionov aka Gremlin from Kremlin
gremlin ПРИ gremlin ТЧК ru; +vii-cmiii-ccxxix-lxxix-xlii

... Не учите дедушку кашлять!
--- /bin/vi
* Origin: http://openwall.com/Owl/ru (2:5020/545)

К главной странице гейта
Powered by NoSFeRaTU`s FGHIGate
Открытие страницы: 0.128984 секунды