Модераторы: LSD

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> так ли страшен goto, как его малюют? за и против goto 
:(
    Опции темы
mes
Дата 13.3.2009, 13:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 1
Всего: 250



Цитата(Anikmar @  13.3.2009,  10:56 Найти цитируемый пост)
опять в голове навязчивый goto  smile

Да на форумах часто панически обрисовывают знаменитый goto и внушают страх.
И его "навязчивость" появляется из за "страха" использования, а ничего страшного в нем нет.
Просто в современных языках есть средства безопаснее и лучше, по сравнению с которыми конструкция с goto  выглядит мягко сказать ущербной.

В общем случае goto также как и  union применим тогда, когда остальные средства бессильны. 

P.S. Правда  пока не приходилось встречаться с ситуацией (в Cpp), где хотя бы вспомнилось о goto, не говоря о появлении желания его использования.

Модератор: тема выделена из union

Это сообщение отредактировал(а) bsa - 13.3.2009, 15:31


--------------------
PM MAIL WWW   Вверх
azesmcar
Дата 13.3.2009, 13:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 2
Всего: 211



mes, ну почему же? о проблемах гото в чуть ли не в каждой книге говорится...зачем же ставить его на одну полку с union?
PM   Вверх
Anikmar
Дата 13.3.2009, 13:48 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

Репутация: 1
Всего: 59



Цитата

azesmcar 
о проблемах гото в чуть ли не в каждой книге говорится


У goto нет проблем. Он сам по себе. Проблемы могут быть только у программиста  smile 

На самом деле если задаться целью, то можно обойтись без любой конструкции языка. Вот только оно надо? Мне не было нужды использовать union, но это вовсе не значит, что я его сознательно избегаю. Если он мне понадобится - буду пользовать. Главное знать, что такое есть.
PM MAIL ICQ   Вверх
azesmcar
Дата 13.3.2009, 13:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 2
Всего: 211



Цитата

У goto нет проблем. Он сам по себе. Проблемы могут быть только у программиста  smile 


если у программиста в следствии использования гото будут проблемы он скорее всего удалит гото и напишите что нибудь получше, следовательно проблемы будут у гото..его просто напросто удалят (прервут его жалкое существование). А это уже проблема ;)
PM   Вверх
azesmcar
Дата 13.3.2009, 14:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 2
Всего: 211



Цитата

А насчет одной полки Вы правы - union гораздо опаснее и требует большей ответственности и знаний  smile


 smile ну как сказать, еслиб я знал что в моей группе кто-то из программистов написал гото, независимо ни от чего я бы бил его головой об бэкспейс smile а к юниону отнесся бы нормально (думаю не я один), если он использован к месту..я думаю излишне говорить еще раз о том что юнион бывает очень полезен, а вот гото - практически не нужен. А так, конечно, почти любым оператором можно убить программу smile
PM   Вверх
mes
Дата 13.3.2009, 14:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 1
Всего: 250



Цитата(azesmcar @  13.3.2009,  13:01 Найти цитируемый пост)
еслиб я знал что в моей группе кто-то из программистов написал гото, независимо ни от чего я бы бил его головой об бэкспейс 

Вы предвзяты! "били" бы только за то что использовали стандартный оператор ?!! smile   нда... 

Это сообщение отредактировал(а) mes - 13.3.2009, 14:22


--------------------
PM MAIL WWW   Вверх
Dmi3ev
Дата 13.3.2009, 14:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1698
Регистрация: 28.11.2007

Репутация: нет
Всего: 41



Ребята, вы че-то завернули не туда куда-то от темы, да еще и заморочились  smile  


--------------------

PM MAIL   Вверх
azesmcar
Дата 13.3.2009, 14:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 2
Всего: 211



Цитата

Вы предвзяты! били бы только за то что использовали стандартный оператор ?!! smile   нда... 


ну я бы не стал воспринимать все так буквально  smile уже оффтоп пошел
PM   Вверх
bsa
Дата 13.3.2009, 14:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: нет
Всего: 196



Цитата(azesmcar @ 13.3.2009,  14:01)
 smile ну как сказать, еслиб я знал что в моей группе кто-то из программистов написал гото, независимо ни от чего я бы бил его головой об бэкспейс smile

Предложи крассивое решение по замене goto без пессимизации кода:
Код
for(int i = 0; i < 1000; ++i) {
   ...
   while(condition) {
       ...
       if (some_case)
          goto end_of_cycles;
       ...
   }
   ...
}
end_of_cycles:;

PM   Вверх
azesmcar
Дата 13.3.2009, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 2
Всего: 211



так

Код

bool some_case = false;
for(int i = 0; i < 1000 && !some_case; ++i) {
   ...
   while(condition && !some_case) {
       ...
       some_case = some_condition;
       ...
   }
   ...
}
end_of_cycles:;


или так...

Код

bool some_case = false;
for(int i = 0; i < 1000 && !some_case; ++i) {
   ...
   while(condition) {
       ...
       some_case = some_condition;
       if (some_case)
          break;
       ...
   }
   ...
}
end_of_cycles:;


непонял что имеется ввиду под

Цитата

без пессимизации кода

может это считается пессимизацией, но по моему все равно лучше писать так чем гото smile

Это сообщение отредактировал(а) azesmcar - 13.3.2009, 14:50
PM   Вверх
Dmi3ev
Дата 13.3.2009, 15:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1698
Регистрация: 28.11.2007

Репутация: нет
Всего: 41



в данном случае гото лучше - 100%.
мне не нравится гото, когда назад он кидает, а когда вперед, очень даже ничего...


--------------------

PM MAIL   Вверх
mes
Дата 13.3.2009, 15:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 1
Всего: 250



Цитата(azesmcar @  13.3.2009,  13:50 Найти цитируемый пост)
так

а теперь представьте при 5ти уровневом (или более) вложении циклов smile 
решение в лоб посредством флага не очень красивое и может (в каких то случаях)  помочь лишь смена алгоритма.   smile 


--------------------
PM MAIL WWW   Вверх
azesmcar
Дата 13.3.2009, 15:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 2
Всего: 211



кстати вот этот код вылетит при запуске.

Код

int main()
{
    for (int i = 0; i < 10; ++i)
    {
        for (int j = 0; j < 10; ++j)
        {
            if ( i % j == 0 )
            {
                goto endofcycle;
            }
        }
    }
    endofcycle:
    return 0;
}


Добавлено через 1 минуту и 25 секунд
Цитата

а теперь представьте при 5ти уровневом (или более) вложении циклов smile 
решение в лоб посредством флага не очень красивое и может (в каких то случаях)  помочь лишь смена алгоритма.   smile  


пятиуровневые циклы и из каждого возможно нужно прекратить все..немного надуманно, но я бы такое решил с помощью функций..
PM   Вверх
Dmi3ev
Дата 13.3.2009, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1698
Регистрация: 28.11.2007

Репутация: нет
Всего: 41



и между кодом bsa и azesmcar я бы равно не поставил  smile  


--------------------

PM MAIL   Вверх
mes
Дата 13.3.2009, 15:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 1
Всего: 250



Цитата(azesmcar @  13.3.2009,  14:01 Найти цитируемый пост)
кстати вот этот код вылетит при запуске.
Код


    
int main()
{
    for (int i = 0; i < 10; ++i)
    {
        for (int j = 0; j < 10; ++j)
        {
            if ( i % j == 0 )
            {
                goto endofcycle;
            }
        }
    }
    endofcycle:
    return 0;
}




 smile  smile  smile 
Боюсь Вас удивить, но этот тоже :
Код


    for (int i = 0; i < 10; ++i)
        for (int j = 0; j < 10; ++j)
            if ( i % j == 0 ) break;

и при чем здесь тогда goto  ?!


Это сообщение отредактировал(а) mes - 13.3.2009, 15:12


--------------------
PM MAIL WWW   Вверх
azesmcar
Дата 13.3.2009, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 2
Всего: 211



Цитата

решение в лоб посредством флага не очень красивое и может (в каких то случаях)  помочь лишь смена алгоритма


можно этото избежать с помощью
1. смены алгоритма
2. выделить каждый цикл в функции или реализовать рекурсией (если уж так сильно нужна такая вложенность)
3. как я написал выше
4. используя гото
5. используя исключения

мне кажется любую задачу где возникла необходимость решить с помощью гото, можно решить первыми тремя способами. И они как правило лучше. А исключениями вообще не стоит.

Добавлено @ 15:17
Цитата

Боюсь Вас удивить, но этот тоже :


пора в отпуск... 

Это сообщение отредактировал(а) azesmcar - 13.3.2009, 15:17
PM   Вверх
azesmcar
Дата 13.3.2009, 15:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 2
Всего: 211



про юнион все и забыли  smile 

вот тут нашел дискуссию по этому поводу...
http://forum.shelek.ru/index.php/topic,9852.0.html

давайте сразу и тему в религиозные войны перенесем  smile 
PM   Вверх
mes
Дата 13.3.2009, 15:36 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 1
Всего: 250



Цитата(azesmcar @  13.3.2009,  14:14 Найти цитируемый пост)
И они как правило лучше.

"Как правило " это "не всегда". И, как правило, у каждого правила есть исключения..  smile 
Именно поэтому нельзя подходить к вопросу категорично.
Новичков отпугивают от goto, потому что большая вероятность, что он будет его писать везде без разбора,
а если человек понимает всю степень ответственности и сознательно выбрал этот подход, то  наверняка это лучший(по крайней мере не хуже другого) из вариантов.  smile 



--------------------
PM MAIL WWW   Вверх
azesmcar
Дата 13.3.2009, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 2
Всего: 211



Ну раз уж модератор выделил в отдельную тему скажу

До сих пор я выражал свое субьективное мнение по данному вопросу smile теперь попробую выразится обьективно.

цитата: Бьерн Страуструп 
Цитата

Вообще говоря, он мало используется в языках высокого уровня, но может быть очень полезен, если текст на С++ создается не человеком, а автоматически, т.е. с помощью программы. Например, операторы goto используются при создании анализатора по заданной грамматике языка с помощью программных средств.

Кроме того, операторы goto могут пригодиться в тех случаях, когда на первый план выходит скорость работы программы. Один из них - когда в реальном времени происходят какие-то вычисления во внутреннем цикле программы.

Есть немногие ситуации и в обычных программах, когда применение goto оправдано. Одна из них - выход из вложенного цикла или переключателя. Дело в том, что оператор break во вложенных циклах или переключателях позволяет перейти только на один уровень выше.


любой оператор в неумелых руках может привести к нечитабельности кода и его неадекватному поведению, если писать правильно то все будет нормально, вопрос только в том что не рекомендуется использовать некоторые операторы и возможности С++, поскольку есть их более безопасные аналоги и можно обойтись и без них. Лично для меня обьективное мнение что гото в некоторых редких случая оправда - не меняет мой взгляд на этот оператор и мое субьективное мнение остается при мне smile Я не то чтобы избегаю, а просто даже ситуации не было чтобы задуматся об его использовании. Кто что скажет?
PM   Вверх
Rififi
Дата 13.3.2009, 15:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1254
Регистрация: 9.3.2008

Репутация: нет
Всего: 36



bsa
Предложи крассивое решение по замене goto без пессимизации кода:
try/catch, longjmp (это жОстко ((: ) ?
PM MAIL   Вверх
bsa
Дата 13.3.2009, 15:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: нет
Всего: 196



Я только однажды использовал goto, более того, расширение gcc:
Код
static const void *labels[] = { &&label0, &&label1, ..., &&label255 };
...
goto  *labels[idx];
...
label0:
...
label255:
...
Код критичный ко времени исполнения.
PM   Вверх
azesmcar
Дата 13.3.2009, 15:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 2
Всего: 211



Цитата

try/catch

рекомендуется использовать только для отлова ошибок. Сатер - Решение новых сложных задач на С++ smile

Добавлено через 3 минуты и 1 секунду
Цитата

Код критичный ко времени исполнения. 


это уже что-то вроде низкоуровнего программирования, тогда чтобы что-то использовать никакие оправдания не нужны smile любые средства хороши. Но я не это имею ввиду. С тем же успехом можно сделать на ассемблере, это не безопасно, это не очень то читабельно, но это быстро потому что так надо smile тут без вопросов, я говорю про обычный код.
PM   Вверх
Albor
Дата 13.3.2009, 15:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 589
Регистрация: 28.2.2009

Репутация: нет
Всего: 9



Цитата(mes @  13.3.2009,  12:30 Найти цитируемый пост)
Да на форумах часто панически обрисовывают знаменитый goto и внушают страх.

Страуструп по этому поводу говорит, что применение goto свидетельствует о том, что плохо продуман алгоритм (неточное цитирование, нет под рукой книги). Поэтому, наверное, такой ажиотаж вокруг этого.

Это сообщение отредактировал(а) Albor - 13.3.2009, 15:57
PM MAIL ICQ   Вверх
azesmcar
Дата 13.3.2009, 15:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 2
Всего: 211



bsa, в случае не очень критичного кода это можно было бы с успехом заменить на

std::map<int, function_ptr> не так ли smile
PM   Вверх
mes
Дата 13.3.2009, 16:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 1
Всего: 250



Цитата(azesmcar @  13.3.2009,  14:52 Найти цитируемый пост)

std::map<int, function_ptr> не так ли smile 


 а почему не просто массив функций ?  smile 



--------------------
PM MAIL WWW   Вверх
bsa
Дата 13.3.2009, 16:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: нет
Всего: 196



Цитата(azesmcar @ 13.3.2009,  15:52)
bsa, в случае не очень критичного кода это можно было бы с успехом заменить на

std::map<int, function_ptr> не так ли smile

нет конечно, я бы заменил на статический массив указателей на функцию, так как "ключи" имеют значения от 0 до 255. Использование map в данном случае, было бы пессимизацией.
PM   Вверх
azesmcar
Дата 13.3.2009, 16:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 2
Всего: 211



Цитата

нет конечно, я бы заменил на статический массив указателей на функцию, так как "ключи" имеют значения от 0 до 255. Использование map в данном случае, было бы пессимизацией.


ну я же не знаю какие у тебя значения имели ключи..у меня был случай когда ключи было не очередны, т.е. 1, 10, 50, 143, 354..но я тоже тут использовал статический массив ради констаной скорости поиска..смотря чего нужно добится smile
PM   Вверх
mes
Дата 13.3.2009, 16:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 1
Всего: 250



Цитата(azesmcar @  13.3.2009,  15:09 Найти цитируемый пост)
ну я же не знаю какие у тебя значения имели ключи..у меня был случай когда ключи было не очередны, т.е. 1, 10, 50, 143, 354..но я тоже тут использовал статический массив ради констаной скорости поиска..смотря чего нужно добится smile 

можно сделать предположение по массиву меток :

Цитата(bsa @  13.3.2009,  14:45 Найти цитируемый пост)
static const void *labels[] = { &&label0, &&label1, ..., &&label255 };


и этот пример (который привел bsa) обсуждался в этой теме :
http://forum.vingrad.ru/forum/topic-208226...tml#st_0_view_0


Это сообщение отредактировал(а) mes - 13.3.2009, 16:11


--------------------
PM MAIL WWW   Вверх
azesmcar
Дата 13.3.2009, 16:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 2
Всего: 211



bsa, кстати, можно было и по другому.

Код

switch (idx)
{
   case 1: ...; break;
   case 2: ...; break;
   case 3: ...; break;
   case 255: ...; break;
}


компилятор 99% преобразует это в таблицу переходов, т.е. в принципе в то что ты написал с помощью гото smile

Добавлено через 1 минуту и 16 секунд
mes, не важно, я сам принцип имел ввиду..

Добавлено через 5 минут и 30 секунд
mes, в теме которую ты прислал - ты сам привел несколько причин по которым использование гото нежелательно..я тоже люблю поспорить, но о чем мы спорим если мы думаем одинаково?  smile 
PM   Вверх
mes
Дата 13.3.2009, 16:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 1
Всего: 250



Цитата(azesmcar @  13.3.2009,  15:14 Найти цитируемый пост)
mes, в теме которую ты прислал - ты сам привел несколько причин по которым использование гото нежелательно

обратите внимание, что и в той теме я не писал об категоричном отказе от goto, а то что у goto много недостатков я и не спорю.  

Цитата(azesmcar @  13.3.2009,  15:14 Найти цитируемый пост)
но о чем мы спорим ...?

о предвзятости и катeгоричности smile
Цитата(azesmcar @  13.3.2009,  15:14 Найти цитируемый пост)
 если мы думаем одинаково?

судя по высказываниям , то если о плохих чертах думаем одинаково, то о хороших чертах goto по разному smile

Цитата(azesmcar @  13.3.2009,  15:14 Найти цитируемый пост)
компилятор 99% преобразует это в таблицу переходов,

не всегда можно/удобно применить такой подход (из за нехватки динамичности)

Это сообщение отредактировал(а) mes - 13.3.2009, 16:37


--------------------
PM MAIL WWW   Вверх
azesmcar
Дата 13.3.2009, 17:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 2
Всего: 211



Цитата

о предвзятости и катeгоричности smile


каждый имеет право на свое субьективное категоричное мнение smile

Цитата

судя по высказываниям , то если о плохих чертах думаем одинаково, то о хороших чертах goto по разному smile


не совсем, просто для меня, плохие черты, затмевают хорошие.

Цитата

не всегда можно/удобно применить такой подход (из за нехватки динамичности)


не совсем понял, если можно приведи пример когда не удобно?
PM   Вверх
mes
Дата 13.3.2009, 18:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 1
Всего: 250



Цитата(azesmcar @  13.3.2009,  16:28 Найти цитируемый пост)
каждый имеет право на свое субьективное категоричное мнение smile

Цитата(azesmcar @  13.3.2009,  13:01 Найти цитируемый пост)
еслиб я знал что в моей группе кто-то из программистов написал гото

нда..

Цитата(azesmcar @  13.3.2009,  16:28 Найти цитируемый пост)
не совсем понял, если можно приведи пример когда не удобно? 

1. например если каждому case соответсвует функция/callback, и индексы расположены линейно, то switch просто излишен
2. когда необходимо динамическое  изменение соответсвий индекса выполнению, а также их  количество - автомат состояний. 
..

Это сообщение отредактировал(а) mes - 13.3.2009, 18:19


--------------------
PM MAIL WWW   Вверх
azesmcar
Дата 13.3.2009, 19:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 2
Всего: 211



Цитата

нда..


и еще я сказал
Цитата

ну я бы не стал воспринимать все так буквально  smile


это было сказано в шутку, и поскольку в каждой шутке есть доля правды, раскрою..тут доля правды в том что я бы попросил удалить гото, и вместе с программистом написавшим его, попробовал бы найти другое решение. Надеюсь ты же не серьезно подумал что я буду бить программиста за гото??  smile  smile  smile представь тогда чтобы я сделал с программистом написавшим этот код
Код

bool IsNumber (string str)
{
return (str.Replace ("0", "").Replace ("1", "").Replace ("2", "").Replace ("3", "").Replace ("4", "").Replace ("5", "").Replace ("6", "").Replace ("7", "").
Replace ("8", "").Replace ("9", "").Length == 0);
}


Да и я никому не запрещаю иметь свое мнение по поводу гото, но если за код отвечаю я, я буду делать так чтобы писался легкочитаемый и легкосопровождаемый код..во всяком случае я буду старатся smile

Цитата

нда..


так что ничего противоречивого тут нет, пусть имеют свое мнение, у меня тоже свое мнение по поводу стиля программирования, но оно никого не интересует если в компании есть установленный стиль, то же самое тут..
PM   Вверх
mes
Дата 13.3.2009, 19:40 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 1
Всего: 250



Цитата(azesmcar @  13.3.2009,  18:12 Найти цитируемый пост)
это было сказано в шутку, и поскольку в каждой шутке есть доля правды, раскрою..тут доля правды в том что я бы попросил удалить гото, и вместе с программистом написавшим его, попробовал бы найти другое решение. Надеюсь ты же не серьезно подумал что я буду бить программиста за гото??  smile  smile  smile 

Я воспринял это как "насильственное" навязывание своего субъективного мнения окружающем без вникания в подробности вместо разъяснения ситуации.
И это никак не увязалось с другим Вашим высказыванием о праве каждого на собственное субъективное мнение. smile

Цитата(azesmcar @  13.3.2009,  18:12 Найти цитируемый пост)
делать так чтобы писался легкочитаемый и легкосопровождаемый код..во всяком случае я буду старатся smile

Это высказывание опять не вяжется с категоричным отрицанием использования goto в программе. Goto не всегда плохо, хотя и часто.

Цитата(azesmcar @  13.3.2009,  18:12 Найти цитируемый пост)
но оно никого не интересует если в компании есть установленный стиль, 

стиль  некой компании мы не рассматриваем и на него ориентироваться не будем, потому что зачастую практически в каждом таком стиле есть "злоупотребления во благо",
в число которых и входит запрет на использования goto.

Это сообщение отредактировал(а) mes - 13.3.2009, 19:44


--------------------
PM MAIL WWW   Вверх
azesmcar
Дата 13.3.2009, 20:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 2
Всего: 211



Цитата

Я воспринял это как "насильственное" навязывание своего субъективного мнения окружающем без вникания в подробности вместо разъяснения ситуации.
И это никак не увязалось с другим Вашим высказыванием о праве каждого на собственное субъективное мнение. smile


нет, это я как грубый пример для сравнения с union привел. В смысле с гото - будут разбирательства, с юнион - не обязательно.
Ну я и говорю, каждый имеет право на свое мнение, я тоже, но порой я не имею права писать так как считаю нужным. Я бы с удовольствием переделал все Г которые написали до меня в нашей конторе представители азиатской культуры (то бишь Индусы)..но мне никто не даст переписать код который писали пару лет. Увы...се ля ви smile
PM   Вверх
mes
Дата 13.3.2009, 22:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 1
Всего: 250



Цитата(azesmcar @  13.3.2009,  18:12 Найти цитируемый пост)
return (str.Replace ("0", "").Replace ("1", "").Replace ("2", "").Replace ("3", "").Replace ("4", "").Replace ("5", "").Replace ("6", "").Replace ("7", "").
Replace ("8", "").Replace ("9", "").Length == 0);

Этот код реальный ?! или просто "учебный" пример  ?

Цитата(azesmcar @  13.3.2009,  19:13 Найти цитируемый пост)
Ну я и говорю, каждый имеет право на свое мнение, я тоже, но порой я не имею права писать так как считаю нужным. 

Т.е .Вы согласны, что если бы не указания свыше(стиль фирмы), то если решение с goto безопасное и изящнее, чем другая конструкция, то избегать ее только потому что она "goto" не стоит ?
 smile 

Мне кажется, что тема исчерпала себя и можно ее помечать решенной smile


--------------------
PM MAIL WWW   Вверх
GoldFinch
Дата 14.3.2009, 01:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

Репутация: нет
Всего: 26



а что скажет общественность о конструкции

Код

... foo(...) 
{
  ...
  if (...) goto cleanup;
  ...
  if (...) goto cleanup;
  ...
cleanup:
  ...
};

PM MAIL ICQ   Вверх
Shaggie
Дата 14.3.2009, 08:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Завсегдатай
Сообщений: 570
Регистрация: 21.12.2006
Где: outer space

Репутация: нет
Всего: 72



Цитата(mes @  13.3.2009,  22:43 Найти цитируемый пост)
Этот код реальный ?! или просто "учебный" пример  ?

Я его видел на code_wtf. Наверное реальный.


--------------------
Цитата(alina3000 @  6.3.2014,  10:47 Найти цитируемый пост)
Сорри что не по теме 
PM MAIL ICQ GTalk Jabber   Вверх
azesmcar
Дата 14.3.2009, 08:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 2
Всего: 211



Цитата

Этот код реальный ?! или просто "учебный" пример  ?


это код индусов коих у нас в компании немеряно smile нашел в интернете, я верю что он реальный, просто не было под рукой реальных..у нас и похлеще пишут..switch на 250 вариантов, функции длиной в 2000 строк - это не предел smile видел такие шедеверы что лучше не вспоминать

Цитата

Т.е .Вы согласны, что если бы не указания свыше(стиль фирмы), то если решение с goto безопасное и изящнее, чем другая конструкция, то избегать ее только потому что она "goto" не стоит ?


если безопаснее и изящнее - нет проблем. Но я лично не встречал случая где его нужно было бы использовать и даже без стиля я бы много много раз подумал перед тем как оставить код с гото smile

Цитата

Мне кажется, что тема исчерпала себя и можно ее помечать решенной smile 


думаю да  smile 



Это сообщение отредактировал(а) azesmcar - 14.3.2009, 08:29
PM   Вверх
Lazin
Дата 14.3.2009, 10:42 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 4
Всего: 154



Цитата(GoldFinch @ 14.3.2009,  01:30)
а что скажет общественность о конструкции

Код

... foo(...) 
{
  ...
  if (...) goto cleanup;
  ...
  if (...) goto cleanup;
  ...
cleanup:
  ...
};

для Си нормально, для С++ нет
PM MAIL Skype GTalk   Вверх
mes
Дата 14.3.2009, 12:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 1
Всего: 250



Цитата(GoldFinch @  14.3.2009,  00:30 Найти цитируемый пост)
а что скажет общественность о конструкции

общественность не знаю, но я согласен с Lazin.
smile

Это сообщение отредактировал(а) mes - 14.3.2009, 15:32


--------------------
PM MAIL WWW   Вверх
Remiznik
Дата 14.3.2009, 14:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 379
Регистрация: 30.4.2005

Репутация: нет
Всего: 1



чото я не понял чем плох ваше goto ? 
вот только у меня такой вопрос если переход осушествляеться из функции то функция которая его вызвала закрываеться вместе с её облостью видемости или goto переходть за пределы функци ? 
PM MAIL   Вверх
mes
Дата 14.3.2009, 15:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 1
Всего: 250




Цитата(Remiznik @  14.3.2009,  13:41 Найти цитируемый пост)
если переход осушествляеться из функции то функция которая.. 

goto не может пересекать границы функций, а также перескакивать инициализацию объектов (раньше мог из за чего в основном его и невзлюбили)

Цитата(Remiznik @  14.3.2009,  13:41 Найти цитируемый пост)
чото я не понял чем плох ваше goto ? 

сейчас в принципе ничем, кроме http://forum.vingrad.ru/index.php?showtopi...t&p=1491970




--------------------
PM MAIL WWW   Вверх
GrayCardinal
Дата 14.3.2009, 16:20 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Фигасе
****


Профиль
Группа: Завсегдатай
Сообщений: 3039
Регистрация: 9.11.2003

Репутация: нет
Всего: 58



Ёшкин кот, сколько можно ?!  smile  smile 


--------------------
PM MAIL WWW   Вверх
MAKCim
Дата 14.3.2009, 16:58 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 8
Всего: 207



Цитата(GrayCardinal @  14.3.2009,  16:20 Найти цитируемый пост)
Ёшкин кот, сколько можно ?!

угу

подолью масла в огонь
я вот вообще не представляю себе жизнь без goto: в С он незаменим (не в плане того, что его нельзя заменить как синтаксическую конструкцию)
с кем-то спорить и что-то доазывать не собираюсь, т. к для меня это очевидно и 100 раз пройдено на практике
кто не согласен, на 95% уверен, что они не программировали на С серьезные вещи

 smile 


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
azesmcar
Дата 14.3.2009, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 2
Всего: 211



Цитата

подолью масла в огонь
я вот вообще не представляю себе жизнь без goto: в С он незаменим (не в плане того, что его нельзя заменить как синтаксическую конструкцию)
с кем-то спорить и что-то доазывать не собираюсь, т. к для меня это очевидно и 100 раз пройдено на практике
кто не согласен, на 95% уверен, что они не программировали на С серьезные вещи


а кто тут несогласен??? мы тут о C++ разговаривали..

Цитата

Ёшкин кот, сколько можно ?!


как-то плавно перешли, никто специально не начинал  smile 
PM   Вверх
MAKCim
Дата 14.3.2009, 17:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 8
Всего: 207



Цитата(azesmcar @  14.3.2009,  17:07 Найти цитируемый пост)
мы тут о C++ разговаривали..

в С++ его использование не приведет ни кчему хорошему в большинстве случаев, но не потому, что goto плох как средство, а потому, что объектная модель С++ мало совместима с непоследовательным выполнением кода через goto

о чем спор?  smile

Добавлено через 3 минуты и 38 секунд
противникам goto на засыпку привожу код из ядра linux
плюйтесь на здоровье
тут
 smile 


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
azesmcar
Дата 14.3.2009, 18:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 2
Всего: 211



Цитата

в С++ его использование не приведет ни кчему хорошему в большинстве случаев, но не потому, что goto плох как средство, а потому, что объектная модель С++ мало совместима с непоследовательным выполнением кода через goto

о чем спор?  smile


вот я о том же говорил  smile

Цитата

Добавлено через 3 минуты и 38 секунд
противникам goto на засыпку привожу код из ядра linux
плюйтесь на здоровье


код ядра линукс написан на С, и в нем оправдано использование любого оператора С который приведет к повышению производительности (ядро все таки)..но тема C++ называлась (с которой эту тему срезали).

Это сообщение отредактировал(а) azesmcar - 14.3.2009, 18:11
PM   Вверх
MAKCim
Дата 14.3.2009, 19:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 8
Всего: 207



Цитата(azesmcar @  14.3.2009,  18:10 Найти цитируемый пост)
и в нем оправдано использование любого оператора С который приведет к повышению производительности

я хотел обратитьвнимание на контекст использования  smile 


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
nerezus
Дата 16.3.2009, 01:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 13
Всего: 43



Цитата

а теперь представьте при 5ти уровневом (или более) вложении циклов  
 В реальном проекте хоть раз было больше 3 уровней? =)

Цитата

про юнион все и забыли  
 Полиморфизм решает проблему =)

Цитата

try/catch
рекомендуется использовать только для отлова ошибок. 
 Ну почему же?) Сразу питон вспоминается =)


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
azesmcar
Дата 16.3.2009, 07:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 2
Всего: 211



Цитата

Полиморфизм решает проблему =)


простите, не понял..а как может решить полиморфизм, проблемы которые решает union?
примеры использования union описаны тут.
http://forum.vingrad.ru/forum/topic-251056.html

Цитата

Ну почему же?) Сразу питон вспоминается =) 


ну..одно дело питон, другое С++. Питон я никогда не использовал, даже с синтаксимом не знаком, так что промолчу..но вот исключения в С++
Цитата

рекомендуется использовать только для сообщения/отлова ошибок. 

и никоим образом для того чтобы вернуть значение из рекурсивной функции к примеру. (Я попробую найти цитату у Саттера)

Это сообщение отредактировал(а) azesmcar - 16.3.2009, 07:48
PM   Вверх
MAKCim
Дата 16.3.2009, 14:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 8
Всего: 207



union и goto достаточно низкоуровневые средства
в С они используются очень часто
goto в C++ опасен, а примеров использования union в C++ я встречал достаточно мало


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
Severyanin
Дата 17.3.2009, 05:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Исследователь
**


Профиль
Группа: Участник
Сообщений: 554
Регистрация: 31.7.2007
Где: Россия, Омск

Репутация: нет
Всего: 9



 smile 
MAKCim, я раньше дого думал, как можно на с эмулировать объектную млдель, но исходники линукса показали этот фокус во всей красе))))


--------------------
"Звонким вереском скроются наши следы, и не вспомнят о них. Кто поверит нам, рыцарям павшей звезды из отвергнутых книг? Пусть в узоре времен ни стихов. ни имен, но напомнит забывшим их полуночный крик." Тэм Гринхилл
"Ужели суслик твоего коварства нагадит в плов доверья моего?". Л.Филатов 
PM MAIL WWW ICQ   Вверх
MAKCim
Дата 17.3.2009, 15:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 8
Всего: 207



 smile 
Цитата(Severyanin @  17.3.2009,  05:25 Найти цитируемый пост)
я раньше дого думал, как можно на с эмулировать объектную млдель, но исходники линукса показали этот фокус во всей красе)))) 

угу
основной фокус
Код

struct base
{
};

struct derived
{
    // фокус в этом месте
    struct base base;
};

static inline struct derived *get_derived(struct base *base)
{
    return (struct derived*)base;
}



--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
bsa
Дата 19.3.2009, 00:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: нет
Всего: 196



Цитата(MAKCim @ 14.3.2009,  17:15)
противникам goto на засыпку привожу код из ядра linux
плюйтесь на здоровье
тут
 smile

Я хоть и не ярый противник, но за это бы убил. Это каким же нестандартным мышлением надо обладать, чтобы написать такое. Ощущение, что кто-то это списывал с ассемблера (сам когда перевожу асм в си подобные конструкции временно горожу, но потом всегда привожу в норму).
Код
if (queue->input_pkt_queue.qlen) {
enqueue:
   __skb_queue_tail(&queue->input_pkt_queue, skb);
   local_irq_restore(flags);
   return NET_RX_SUCCESS;
}

napi_schedule(&queue->backlog);
goto enqueue;
Так как можно переписать:
Код
if (!queue->input_pkt_queue.qlen)
   napi_schedule(&queue->backlog);

__skb_queue_tail(&queue->input_pkt_queue, skb);
local_irq_restore(flags);
return NET_RX_SUCCESS;

PM   Вверх
MAKCim
Дата 19.3.2009, 00:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 8
Всего: 207



Цитата(bsa @  19.3.2009,  00:34 Найти цитируемый пост)
но за это бы убил.

я бы то же
хоть я и люблю goto, но прыгать в условие - это семантически неверно
Цитата(bsa @  19.3.2009,  00:34 Найти цитируемый пост)
Ощущение, что кто-то это списывал с ассемблера

исключено


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
bsa
Дата 19.3.2009, 00:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: нет
Всего: 196



Подозреваю, что в ядре линукса в большинстве случаев goto используется не из-за необходимости, а по неопытности программиста, который писал этот код.
PM   Вверх
MAKCim
Дата 19.3.2009, 01:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 8
Всего: 207



Цитата(bsa @  19.3.2009,  00:52 Найти цитируемый пост)
Подозреваю, что в ядре линукса в большинстве случаев goto используется не из-за необходимости, а по неопытности программиста, который писал этот код. 

хм
весьма спорно


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
bsa
Дата 20.3.2009, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: нет
Всего: 196



Цитата(GoldFinch @ 14.3.2009,  01:30)
а что скажет общественность о конструкции

Код

... foo(...) 
{
  ...
  if (...) goto cleanup;
  ...
  if (...) goto cleanup;
  ...
cleanup:
  ...
};

Данный код вообще элементарно преобразовать:
Код
... foo(...) 
{
  ...
  do {
    if (...) break;
    ...
    if (...) break;
    ...
  }while(0);
  ...
};
Причем, я уверен, что любой компилятор не будет генерировать код для while(0), так как заранее очевидно, что он [код] не нужен. Правда, наглядности данный код не сильно прибавляет (если даже не уступает).
PM   Вверх
MAKCim
Дата 21.3.2009, 11:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 8
Всего: 207



Цитата(bsa @  20.3.2009,  13:07 Найти цитируемый пост)
Данный код вообще элементарно преобразовать:

а вот тут не согласен

код с goto предпочтительнее, т. к он более наглядный и сразу видно, для чего он нужен (cleanup)


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила ведения Религиозных войн
Smartov
1. Уважайте собеседника
2. Собеседник != враг
3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez"

С уважением, Smartov.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Религиозные войны | Следующая тема »


 




[ Время генерации скрипта: 0.3050 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.