Why not? In each IF I'll release all resources by invoke separate functions.12.09.11 22:17 Число просмотров: 3384 Автор: Den <Денис Т.> Статус: The Elderman
Вообще-то использование goto там, где без него можно обойтись - типичный быдлокодинг, но бывают ситуации, например, с множественным входом-выходом из цикла, где без него - никак. Если необходимо получить максимальную компактоность/быстродействие, то goto, так же, предпочтителнее, поскольку do while и break часто генерят лишние переходы.
В общем, не хватает информации.
Существует много ситуаций, где идиома DWF даёт ясный код с...10.09.11 06:31 Автор: void <Grebnev Valery> Статус: Elderman
Существует много ситуаций, где идиома DWF даёт ясный код с хорошим мэйтенатсом избавляя от множества запутанных вложенных if, с одной точкой очистки ресурсов и выхода из функции.
Если отбросить преимущества DWF в макросах (что используется не часто), то goto - даёт тоже решение, что и DWF. Макрософт, кажется, это постоянно использует (goto) вместо do {} while (false).
очень даже может быть...10.09.11 12:49 Автор: Den <Денис Т.> Статус: The Elderman
сам частенько использую в методах if () return ... вместо кучи вложенных if и одного return в конце метода, для лучшего чтения кода и уменьшения вложений.
Some details in question…12.09.11 17:36 Автор: void <Grebnev Valery> Статус: Elderman
What if you need to work with more than 1 resource? For instance, create a socket, allocate a buffer, open a file, and so on. You will probably need to release all of them in each IF?
Why not? In each IF I'll release all resources by invoke separate functions.12.09.11 22:17 Автор: Den <Денис Т.> Статус: The Elderman
Это же не ядро оси, где все ошибки генерятся софтом и другого способа их диагностики быть не может. У робота ошибки обусловлены непредсказуемыми внешними условиями, диагнстика малоинформативна, а действия по устранению ошибки и продолжению работы - чистая эвристика наладчиков.
Тут смысл, именно, в возможности перехода в ручное управление вплоть до гаечного ключа и возможности таким способом выйти в любую стадию, с которо и продолжить работу. Ф-ция с фиксированной точкой входа/выхода здесь не катит, нужна, именно, возможность возврата из ручного режима в любую точку. Или, как во 2й моей задаче - всегда в нулевую, поскольку шагов очень много и проще после сбоя рестартовать с нуля, задав уже выполненные операции, как начальные условия.
Я тут уже 3 библиотечных модуля родил, вы будете смеяться, но у Сименса их нет! "Вертушки":
-шаговый искатель,
-мультистабильный триггер (сколько выходов, столько и установочных входов, порядок - произвольный)
-последовательный мультистабильный триггер (то же самое, то N+1 состояние может включиться только после N-ного)
Во 2м и 3м случаях на N+1вход подаются контроли готовности после выполнения N-ного шага.
примитив )14.09.11 15:00 Автор: Den <Денис Т.> Статус: The Elderman
Во-первых - минимальные ресурсы и максимальное быстродействие, во-вторых - а для кого стараться? Модернизироваться-то основные циклы работы не будут, потому вопрос понятности для последователей не стоит. А вот для меня самого такой подход наиболее прозрачен, поскольку похож на "железяку".
согласен15.09.11 16:50 Автор: Den <Денис Т.> Статус: The Elderman
Ну, вот у меня на столе сейчас задачка - цикл работы робота, где без goto - никак. На любом шаге может возникнуть отказ, при котором после истечения контрольного времени операции переход в ручной режим. В ручном неисправность устраняется, после чегоробот кнопками и гаечным ключом выгоняется в ближайшую позицию и вручную передается управление внутрь цикла в эту самую позицию.
И как это сделать без goto из цикла и в цикл?
конечный автомат с запоминанием последнего рабочего состояния при переходе на устранение неисправности11.09.11 10:48 Автор: dl <Dmitry Leonov>
Потому, как покореженную заготовку убрали, а он все еще думает, что она там и пока все положенные операции с пустым местом не закончит - не остановится. Т.е. в идеале он после устранения неисправности вручную выводится в ближайшую подходящую позицию и оттуда рестартует.
ну как бы необязательно возвращаться строго в то состояние, которое запомнилось12.09.11 15:51 Автор: dl <Dmitry Leonov>
Достаточно его учитывать, это уже по ситуации. Конечно, можно и сами конечные автоматы считать очень завуалированным goto, но всякие вещи со сменой состояний с ними пишутся гораздо приятней.