Re[5]: семантика switch/case
От: ononim  
Дата: 16.12.15 14:44
Оценка:
O>>ну, скажем for имеет совсем-совсем не такую семантику как while. И в каком-то особенно философском смысле for отличается от while как switch от if/else.
__>вот и я так ожидал, что "for отличается от while как switch от if/else", то есть, что первое является разновидностью синтаксического сахара второго (ведь for(<stat>_0; <condition>; <stat>_1){<body>} равносильно <stat>_0; while(<condition>){<body>; <stat>_1} ), а оказалось все не так


фор в отличие от вайла допускает отсутствие любой своей части, вплоть до
for (;;)

что кстати многие, включая меня, считают более адекватным выражением бесконечного цикла нежели while(1)

O>>Я кстати пред сообщение подкрепил примером.

__>ну, как бы да, для меня это пример из области программирования на "высокоуровневом ассемблере".
Просто чтото о чем вы не знали и внезапно узнали. Впрочем двоеточия после case'ов и тот факт что case'ы не приемлют ничего кроме констант как бы намекают на то, что они на метки больше похожи чем на if'ы и вообще сделано оно для облегчения оптимизатору строить оптимизированные таблицы переходов в подходящих дла того местах...

Чтонить банальнохитрое типа:
bool get_fileext(char *dst, size_t len, const char *src)
{    
    for ( len = (src = strrchr(src, '.') ) ? len : 0; (len > 1 && !!(*dst=*src)); --len,++src,++dst);
    *dst = 0;
    return !*src;
}

..с применением вайла будет выглядеть, примерно настолько же понятнее как многоэтажный switch-case переделанный на ифы. Но и настолько же длиннее.
Как много веселых ребят, и все делают велосипед...
Отредактировано 16.12.2015 16:16 ononim . Предыдущая версия . Еще …
Отредактировано 16.12.2015 14:57 ononim . Предыдущая версия .
Отредактировано 16.12.2015 14:54 ononim . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.