Здравствуйте, ononim, Вы писали:
O>фор в отличие от вайла допускает отсутствие любой своей части, вплоть до
O>for (;;)
что, согласитесь, нельзя отнести к "совсем-совсем другой семантике" (по сравнению с while).
O>что кстати многие, включая меня, считают более адекватным выражением бесконечного цифра нежели while(1)
а по мне, так while(true) более естественно выглядит, чем пустое условие в for (;)
O>>>Я кстати пред сообщение подкрепил примером.
__>>ну, как бы да, для меня это пример из области программирования на "высокоуровневом ассемблере".
O>Просто чтото о чем вы не знали и внезапно узнали. Впрочем двоеточия после case'ов и тот факт что case'ы не приемлют ничего кроме констант как бы намекают на то, что они на метки больше похожи чем на if'ы и вообще сделано оно для облегчения оптимизатору строить оптимизированные таблицы переходов в подходящих дла того местах...
O>Чтонить банальнохитрое типа:
O>bool get_fileext(char *dst, size_t len, const char *src)
O>{
O> for ( len = (src = strrchr(src, '.') ) ? len : 0; (len > 1 && !!(*dst=*src)); --len,++src,++dst);
O> *dst = 0;
O> return !*src;
O>}
O>..с применением вайла будет выглядеть, примерно настолько же понятнее как многоэтажный switch-case переделанный на ифы. Но и настолько же длиннее.
это пример кода, который уважаемые люди рекомендуют никогда не писать, если только вы не собираетесь больше никогда его не сопровождать в дальнейшем.