Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
12.02.2011, 22:25
|
#71
|
Гражданин KAZUS.RU
Регистрация: 02.06.2003
Адрес: Челябинск
Сообщений: 545
Сказал спасибо: 10
Сказали Спасибо 341 раз(а) в 202 сообщении(ях)
|
Re: Отказоустойчивость ПО
Сообщение от kison
|
Нет-нет, Вы свою позицию обозначьте. GOTO - зло, не всегда зло, обычный прием или самый главный оператор. Мой выбор - два.
|
Мой выбор - три. Для меня это обычный прием в необходимых на то случаях. Здесь такой случай уже упоминали - выход из вложенных циклов.
|
|
|
|
12.02.2011, 22:27
|
#72
|
Прописка
Регистрация: 26.01.2009
Сообщений: 249
Сказал спасибо: 23
Сказали Спасибо 102 раз(а) в 61 сообщении(ях)
|
Re: Отказоустойчивость ПО
Сообщение от kison
|
Сейчас вот Миландр есть, вроде у него контроллеры с 5п не только на бумаге. Но мне уже и на ширпотребе хорошо
|
А опыта работы с Миландром нет? Мне предлагали погонять программу на предмет ошибок (аналог PIC17), но по деньгам не договорились.
Цитата:
|
Странный это документ. Сам по себе goto не опасен. И есть случай, когда его применение красиво. Я правда только один знаю.
|
А я - три
Цитата:
|
Нет-нет, Вы свою позицию обозначьте. GOTO - зло, не всегда зло, обычный прием или самый главный оператор. Мой выбор - два.
|
Мой тоже два. Т.е. обычно - зло, но иногда - его включение сильно облегчает жизнь. Но я - не разработчик, и редко пишу большие программы (в больших стараюсь избегать goto). Когда я работаю над чужими исходниками, я в 99% случаев убираю goto (иногда оставляю, но строго комментирую и место откуда прыгаем и место куда прыгаем)
|
|
|
|
12.02.2011, 22:28
|
#73
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: Отказоустойчивость ПО
Сообщение от Bill
|
Здесь такой случай уже упоминали - выход из вложенных циклов.
|
Я упомянул тот единственный случай, где применяю goto. Поэтому и выбор два, а не 1.
Больше никогда не нужен. Если и у Вас так, то это два. Три - широкое применение. 4 - в каждой функции есть
|
|
|
|
12.02.2011, 22:39
|
#74
|
Гражданин KAZUS.RU
Регистрация: 02.06.2003
Адрес: Челябинск
Сообщений: 545
Сказал спасибо: 10
Сказали Спасибо 341 раз(а) в 202 сообщении(ях)
|
Re: Отказоустойчивость ПО
Сообщение от kison
|
Я упомянул тот единственный случай, где применяю goto. Поэтому и выбор два, а не 1.
Больше никогда не нужен. Если и у Вас так, то это два. Три - широкое применение. 4 - в каждой функции есть
|
Хм... Пусть будет по-вашему. Только есть еще один случай, когда я позволяю себе изредка применять goto. Об этом тоже уже упоминали - функция должна иметь только одну точку выхода.
|
|
|
|
12.02.2011, 22:54
|
#75
|
Почётный гражданин KAZUS.RU
Регистрация: 19.10.2010
Сообщений: 1,752
Сказал спасибо: 158
Сказали Спасибо 640 раз(а) в 364 сообщении(ях)
|
Re: Отказоустойчивость ПО
Текст программы должен быть легкочитаемым и понятным "с лету".
Как правило для контроля. В этом смысле Pascal-подобные языки самые хорошие.
Плюс у них константы и переменные объявляются в самом начале функции/процедуры.
Всякие макросы, GOTO, объявления переменных где попало весьма затрудняют
контроль текста программы. А вот оператор return не в конце программы
не ухудшает читабельность процедур/функций. Если конечно текст хорошо стилизован.
Ассемблер при многих достоинствах плохо читаем(контролируем).
Из-за большого размера, инструкций перехода и вызова.
|
|
|
|
12.02.2011, 22:58
|
#76
|
Заблокирован
Регистрация: 31.10.2010
Сообщений: 3
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
|
Re: Отказоустойчивость ПО
А чем вызов функции или процедуры отличается от GOTO?
|
|
|
|
12.02.2011, 23:09
|
#77
|
Почётный гражданин KAZUS.RU
Регистрация: 19.10.2010
Сообщений: 1,752
Сказал спасибо: 158
Сказали Спасибо 640 раз(а) в 364 сообщении(ях)
|
Re: Отказоустойчивость ПО
Сообщение от Bookaz
|
А чем вызов функции или процедуры отличается от GOTO?
|
Счас банальностей понапишу.
Goto - это инструция безусловного перехода, а вызов - это вызов
с передачей или без неких параметров, с последующим возвратом.
Фишка в том, что вот встретился оператор goto и начинается поиск соответствующей
метки. С вытекающими.
|
|
|
|
12.02.2011, 23:11
|
#78
|
Гражданин KAZUS.RU
Регистрация: 02.06.2003
Адрес: Челябинск
Сообщений: 545
Сказал спасибо: 10
Сказали Спасибо 341 раз(а) в 202 сообщении(ях)
|
Re: Отказоустойчивость ПО
Сообщение от Ar-Gen-Tum
|
Ассемблер при многих достоинствах плохо читаем(контролируем).
Из-за большого размера, инструкций перехода и вызова.
|
Ну, я с этим вряд ли соглашусь. Это зависит не от языка, а от уровня профессионализма. Плохо читаемую программу написать на ЯВУ ничуть не сложнее, чем на ассемблере. И наоборот, на ассемблере профессионал напишет программу так, что читать ее - одно удовольствие.
Я сам учился программированию изучая исходные тексты ОС RSX-11M и т.п. Отличный стиль, превосходная документация - Сразу было видно, что писали Профессионалы. Тут же появилось стремление им подражать.
|
|
|
|
12.02.2011, 23:12
|
#79
|
Заблокирован
Регистрация: 31.10.2010
Сообщений: 3
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
|
Re: Отказоустойчивость ПО
А в целом, просто вызов подпрограммы....
|
|
|
|
13.02.2011, 00:22
|
#80
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: Отказоустойчивость ПО
Сообщение от testerplus
|
А я - три
|
Там три варианта решения конкретной задачи. Из них только один с goto. Вообще это общеизвестный случай и много раз описан в литературе. Ваши остальные варианты тоже общеизвестны. С функцией не всегда выйдет и неизвестно что в циклах. Может там над локальным массивом операции. С флагом вариант часто используется, но ресурсов требует больше, чем goto. Причем как раз в цикле идет проверка, что не добавляет оптимальности.
Сообщение от Bookaz
|
А в целом, просто вызов подпрограммы....
|
Если бы. Это не вызов, вернуться по ретурн не выйдет. goto без реальной необходимости - самый что ни на есть говностиль. Причем скакать можно куда угодно, хоть вверх хоть вниз в пределах файла. А может и всего проекта, я не очень хорошо знаю на что способен goto. Но что способен уронить программу это точно.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 16:17.
|
|