![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
sgrey |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 265 Регистрация: 15.4.2006 Репутация: нет Всего: 4 |
если goto не нарушает естественного хода программы (т.е. нет скачков вверх кода) то вполне можно его использовать, конечно же с умом и не пихать везде где можно... особенно учитывая что практически в любом случае можно обойтись и без него...
|
|||
|
||||
xvr |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 60 Всего: 223 |
Вообще то не рекомендуется, ну например так:
Файл insn-recog.c из gcc |
||||
|
|||||
Mayk |
|
|||
![]() ^аВаТаР^ сообщение>> ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2616 Регистрация: 22.5.2005 Где: за границей разум а Репутация: 45 Всего: 134 |
Это сгенерированный код. В сгенерированном коде читабельность занимает последнее место. имхо. -------------------- Здесь был кролик. Но его убили. Человеки < кроликов, йа считаю. |
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 60 Всего: 223 |
Проблема в том, что иногда ТАК пишут и руками - вот для таких 'умельцев' и запрещают пользоваться goto. Нормальный вменяемый программист пользуется goto только там, где это действительно надо (т.е. почти нигде ![]() |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
на ядро Linux посмотрите по вашим словам получается, что его шизофреники пишут ![]() еще раз говорю, долой предрассудки если уж на то пошло, то нет таких ситуаций, где "это действительно надо" все можно переписать без goto но с goto очень часто понятнее, быстрее и логичнее Это сообщение отредактировал(а) MAKCim - 21.12.2007, 23:44 -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
SaDFromSpb |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 263 Регистрация: 5.4.2006 Где: Санкт-Петербург Репутация: 3 Всего: 3 |
Не только поэтому. Исключения - это только для исключительных ситуаций. Уж лучше использовать goto, вместо того чтобы использовать исключения, как элемент логики программы при ее нормальной работе. -------------------- "За исключением части, касающейся потоков, библиотека Loki написана на стандартном языке С++. Увы, это означает, что многие современные компиляторы не смогут работать с ней в полном объеме." (А. Александреску. Modern C++ design. 2001) |
||||
|
|||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
goto в подавляющем большинстве случаев используется именно как средство управления ресурсами в исключительных ситуациях я, честно говоря, не видел, чтобы где-нибудь исключения использовались не для исключительных ситуаций ![]() -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 41 Всего: 154 |
я у страуса видел ![]() имхо в большинстве случаев можно переписать код без гоуту и при этом в читабельность только вырастет... Хотя иногда без этого нельзя. У меня оператор goto появлялся только в очень больших функциях(неправильно спроектированных) ![]() |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
Lazin, а у меня оператор goto появляется только там, где я это запроектировал. В частности, в функции с таблицей переходов (расширение gcc - позволяет преобразование void* к метке и обратно).
|
|||
|
||||
GrayCardinal |
|
|||
Фигасе ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3039 Регистрация: 9.11.2003 Репутация: 2 Всего: 58 |
Народ, имейте совесть, что значит "нельзя использовать" оператор, который есть по стандарту в языке ? Не хочешь - не используй. Всё.
Это сообщение отредактировал(а) GrayCardinal - 24.12.2007, 14:17 |
|||
|
||||
Albanec |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 1.12.2007 Репутация: нет Всего: нет |
По мне дак оператор готу ето как одна из возможностей реализовать свою идею, и я скажу противникакм данного оператора что не стоит брызгая слюной арать что применение данного оператора не есть хорошо и что его применение приведет всех в ад))) По моему ето бред,
После создания нескольких програм на ассемблере, я понимаю что кроме оператора goto нету ни одного оператора который бы его заменил(в смысле на низком уровне прогрммирования), так что все операторы похожи на goto(просто в машином языке(ассемблер)нету других операторов), приведите мне хоть один низкоуровневый оператор типа if() я вам памятник поставлю)). И скажите мне зачем его вводят во всех языках программирования если он "НЕ НУЖЕН ИЛИ БЕЗ НЕГО МОЖНО ОБОЙТИСЬ"???? А на сечёт читаемости кода, полностью согласен читается трудно, но после некоторого опыта программирования на ассемблере ето детские сказки)) Вообщем моё мнеие такое если использовать данный оператор то только если: без него не обоитись, или он улутшит читаемость кода. Но не в коем случае нельзя ставить крест на даном операторе)) надо его использовать с умом)) |
|||
|
||||
SaDFromSpb |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 263 Регистрация: 5.4.2006 Где: Санкт-Петербург Репутация: 3 Всего: 3 |
-------------------- "За исключением части, касающейся потоков, библиотека Loki написана на стандартном языке С++. Увы, это означает, что многие современные компиляторы не смогут работать с ней в полном объеме." (А. Александреску. Modern C++ design. 2001) |
|||
|
||||
nerezus |
|
||||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 3 Всего: 43 |
P.S. иног да бывает нужен. например при кодировании математического алгоритма, где описание основано на шагах с очень сложной связью. |
||||
|
|||||
Mayk |
|
||||
![]() ^аВаТаР^ сообщение>> ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2616 Регистрация: 22.5.2005 Где: за границей разум а Репутация: 45 Всего: 134 |
В яве реализован выход из вложенных циклов. goto там уже нет. не помню чтоб кому то из за этого приходилось страдать.
![]() -------------------- Здесь был кролик. Но его убили. Человеки < кроликов, йа считаю. |
||||
|
|||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
Mayk,
логика, которую можно описать табличными переходами внутри функции
компилятор GCC Это сообщение отредактировал(а) MAKCim - 1.1.2008, 11:00 -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |