Jump to content
Sign in to follow this  
Guest

goto in Linux?

Recommended Posts

Guest

Вообще-то насколько я помню goto уже практически не используется (по этике программированя), к тому же он весьма неудобен. При компиляции возникают нюансы с адресацией, к тому же нафига нужен такой допотопный оператор со статичной привязкой, если можно использовать циклы? Нельзя передать точку управления из следствия then в операнду if т.к. возникает логический парадокс. К тому же метка должна стоять в начале строки

А есть он или нет в Линухе я незнаю - сам-то чайник в нём, ObjectPascal знаю, Ц вроде как потихоньку разуметь начинаю.

Share this post


Link to post
Share on other sites
Guest

2 ArcEvil: высказывание правильное в принципе, но не по теме.

ОР интересовался наличием goto в shellе -- поскольку в DOSовском

"командном процеессоре" развитых структурных конструкций нет и

goto является единственным средством организации ветвлений да

циклов (я думаю, все поняли, что я имею в виду).

Что касается других языков программирования (в частности C)

то наличие или отсутствие в них goto вообще говоря с платформой

никак не связано.

Насчет неудобства goto -- вопрос довольно деликатный. Безусловно,

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

способы. Однако использование goto для выхода из глубоко

вложенного цикла с большим числом итераций иногда может оказывать

существенное влияние на скорость и т. п. Smile

А что вы имели в виду говоря о "нюансах с адресацией" или

"статичной привязки"?

Share this post


Link to post
Share on other sites
Guest

У вас шел то какой?

И почему все не любят goto? Какой то, простите, дурак сболтнул - и все повторяют... Приведите хотябы ОДИН аргумент, почему яне должен юзать GOTO, если мне через него ПРОЩЕ?

Share this post


Link to post
Share on other sites
Guest

Ну, например в C++ можно очень легко перепрыгнуть через определение объекта класса, и конструктор не вызовется.

А вобще в 90% случаев без goto можно и нужно обходиться. Он затрудняет читаемость кода и вобще выглядит некрасиво. Что значит проще? Приведите пример.

Оставшиеся 10% (и даже меньше) - как раз выход из нескольких вложенных циклов (ну редко они встречаются в реальных программах Smile ) и переход к концу функции в низкоуровневых приложениях (в ядре ОС например), где перед return нужно сделать одинаковых действия во всех случаях case, if-then-else и т.п.

Share this post


Link to post
Share on other sites
Guest

И правда нельзя Sad Плохо я еще С++ знаю. Но все равно, goto лепить везде подряд - плохо.

Share this post


Link to post
Share on other sites
Guest

Гм. Ну насчет дураков -- это вы, уважаемый, загнули.

Если Э. Дейкстра, Н. Вирт, Д. Кнут итп -- дураки, то о нас

с вами и говорить нечего.

Насчет аргументов против goto -- в приниципе рекомендуется

почитать означенных авторов.

Но если вкратце -- (непродуманное) использование goto затемняет логику работы программы, затрудяет отладку и профилирование --

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

Я уж не говорю о сопровождении. Некрасиво, одним словом.

Программировать же по принципу КАК ПРОЩЕ -- это вообще сомнительная концепция. В частности, из нее следует что нужно

предпочесть последовательный поиск хэшированию, а сортировку

пузырьком -- всем остальным видам сортировки.

Я уже говорил, что IMHO единственный случай, где применение goto

оправдано -- это выход из глубоко вложенного цикла.

(Ну я разумеется не говорю о задачах жесткого реального времени,

встроенных системах и тп где важно выжать максимум производительности или написать максимально компактный код)

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...