[an error occurred while processing this directive] [an error occurred while processing this directive]
Использование goto не зависит от используемого языка программирования(+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено AlexD 04 апреля 2002 г. 00:34
В ответ на: Философский Опрос:"Боятся ли наши embedded программёры команды GOTO в проектах на СИ"? отправлено Baser 03 апреля 2002 г. 16:11

программируя на АСМе можно точно так-же без него обойтись.
Я имею ввиду goto в структурном смысле, разумеется.
Свёртка кода вещь конечно хорошая, но приводящая к совершенно
нечитабельным программам, лучше уж использовать вызов функции,
тем более, что на АСМе никто не заставляет придерживаться
строгих правил передачи аргументов, и это можно сделать
максимально эффективно. Поэтому мои программы на АСМе гораздо
лучше структурированны, чем ассемблерный листинг Сишных программ,
где компилёр может такого наворотить...

Так что переход с АСМа на Си не должен вызывать особых проблем,
единственный фактор - психологический, попытка выполнять работу
заместо компилятора. Это всё равно, что взять вместо молотка
строительный пистолет, и забивать гвозди ударами его рукоятки :-)
Ну, тут нет другого выхода, как взять себя за горло, и подавить
это стремление на корню. Пусть Ваши программы поначалу будут не
самыми эффективными, ничего, опыт приходит во время е..бы.

Структурированность - не самоцель, но хорошее средство создания
эффективных, сопровождаемых, читабельных, и в конечном счёте
надёжных программ.

Что касается конкретного goto - как Сишного оператора - то моя рука
не дрогнув поставит его в нужно месте, если это действительно
повысит эффективность+читабельность программы, но... как редко
это бывает! Если рука чешется на goto, то в большинстве случаев
это означает, что алгоритм либо структура данных плохо продуманы.

Вот такое философское мнение для общего случая :-)).

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru