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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вопрос из книги Страуструпа 
:(
    Опции темы
EvilsInterrupt
Дата 14.12.2009, 21:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Executables research
***


Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 14.7.2007
Где: Железнодорожный, МО, Россия

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



bsa, бросание исключений не допустимо! код нужен максимально быстрым! по поводу return и создание циклов согласен. Но я пока некоторые куски кода выделяю в новые методы и их дергаю, а их уж мне проще править )
PM MAIL WWW ICQ Jabber   Вверх
djamshud
Дата 14.12.2009, 21:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


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

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



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

>1. разделение на функции (return лучше, чем goto)

Если только goto изначально используется в качестве вызова части кода, аля функции. Но это уже клиника, и разработчик нуждается в лоботомии.

>2. выделение части кода в цикл do { }while (false);

Шикарнейший костыль. Что люди только не делают, лишь бы не использовать правильный гоуту.

Это сообщение отредактировал(а) djamshud - 14.12.2009, 22:21


--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
bsa
Дата 15.12.2009, 11:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(djamshud @  14.12.2009,  21:42 Найти цитируемый пост)
Если только goto изначально используется в качестве вызова части кода, аля функции.

Ну не скажи:
Код
int func()
{
   if (...)
      goto end;
   ...
   if (...)
      goto end;
   <code1>
end:
   <code2>
}
можно переписать так:
Код
bool func1()
{
   if (...)
      return false;
   ...
   if (...)
      return false;
   return true;
}
int func()
{
   if (!func1())
     <code1>
   <code2>
}

Цитата(djamshud @  14.12.2009,  21:42 Найти цитируемый пост)
Шикарнейший костыль.
Угу, а кто спорит?


Модератор: Давайте вернёмся к теме обсуждения.

PM   Вверх
Леопольд
Дата 15.12.2009, 11:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(EvilsInterrupt @  14.12.2009,  20:56 Найти цитируемый пост)
Леопольд,  Будут мысли хорошего и эффективного рефакторинга кода с goto пиши!

Не, не будут. Я не на плюсах работаю :( Так называемый PLEX. Хуж того. На PLEX'е я пишу тлько для того, что-бы этот дело, вручную перегнать в ASA - местный ассемблер.

Это сообщение отредактировал(а) Леопольд - 15.12.2009, 11:53


--------------------
вопросов больше чем ответов
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

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


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

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


 




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


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

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