-
- Свежего в ленту "О вреде GOTO-фобии (с примерами на С)." fk0 с
большими комментариями - прилагается. Toчкa oпopы(1 знак., 05.03.2023 12:45, ссылка)
- Один студент сегодня при случайном упоминании гото (асм обсуждали
на самом деле) "а ведь это считается неправильным!". Блядь! У него
за душой и "Хелло ворд" нету, а "мнение" ему уже вбили всякие
мудаки... POV(195 знак., 08.03.2023 00:01)
- Не надо учить детей "разговаривать матом". Матерится надо по делу. Подрастут и поймут, где по делу, а где для связки слов. - IBAH(08.03.2023 20:20)
- О Великий, Могучий, Правдивый и Свободный язык Си! Использовать
goto, это как употреблять ненормативную лексику. Если это делаться
для придания определенных смыслов, в этом нет ничего плохого. А
если без goto двух слов связать не можешь... Запрещать goto это как
запрещать слово "хуй". Но писать "Нагооту нагоотурил до гооту?
Выгоотуривай на гооту!" это признак низкого интеллекта. - IBAH(08.03.2023 15:54)
- )) Это в какой такой версии "Выгоотуривай"? В большинстве
"компиляторов" помнится так: "Росгоотуяривай"! SERGHIO(1 знак., 09.03.2023 21:12, картинка)
- :) сихухоль... Vit(1 знак., 10.03.2023 06:50, ссылка)
- Спасибо за картинку. В такой полноте мне ещё не попадалась. С ошибкой в приставке она, правда, но всё равно восхитительно! - Nikolay_Po(09.03.2023 22:32)
- )) Это в какой такой версии "Выгоотуривай"? В большинстве
"компиляторов" помнится так: "Росгоотуяривай"! SERGHIO(1 знак., 09.03.2023 21:12, картинка)
- Сей "штатный оператор" может сломать начисто башку компилятору. Причем не явно, а вылезет когда-то позже в недостаточно отревизированном продакшене. Ну, и легко же самому автору это понимать. Тем более - легко обойти. Однако соглашусь, что обучающийся должен сам показать случаи неправомерного и ненадежного применения этого посыла - GO TO и уверенно доказать свои личные соображения. - bnb62(08.03.2023 15:43)
- Вы пытаетесь плевать против ветра. Это не частное мнение студента а
устоявшийся паттерн "глубинного IT сообщества" и эмбеддерам сделать
с этим ничего нельзя. Так же как предано анафеме прямой доступ к
железу в PC, ручное выделение памяти и указатели и много чего еще. - 3m(08.03.2023 12:11)
- А с указателями-то что? Ну, пытаются настаивать что лучше ссылка..
и я с этим согласен. Но это ж все равно тот же указатель по сути. - POV(08.03.2023 12:28)
- Вообще то и переменная и ссылка, по сути, указатель. - IBAH(08.03.2023 18:59)
- Что за глупость я только что прочитал - POV(08.03.2023 19:04)
- тупанул... регистровая переменная в некоторых системах не
указатель... Переменная-ссылка-указатель вопрос интерпретации, как
человеком, так и компилятором - IBAH(08.03.2023 19:10)
- Можно подумать, что если объявить в сях локальную переменную, то
она станет указателем. На самом деле, в сях (да и в плюсах) по типу
свегда видно, указатель или нет и на что указывает. Во многих
современных языках такой роскоши нету. То есть можно еще устать
угадывать в хипе оно лежит или на стеке. - xarcas(08.03.2023 21:40)
- На переменную в стеке нельзя взять указатель?! Все вопрос
интерпретации. Если бы изучения языка начинали не с переменных, а с
указателей, то переменную объясняли бы "значение которое лежит по
указателю". И все бы говорили переменные "зло". Человечеству
засрали мозг этими переменными-ссылками. Кстати, кажись в кортексе
нет непосредственной загрузки констант, так что константа тоже
указатель. - IBAH(08.03.2023 21:56)
- Ну так и не надо писать что переменная - это и есть указатель. Потому что кое-где это именно так. Только не в сях. "Иметь возможность взять указатель" и "быть указателем" - не одно и то же. А арме вообще (не только в кортексе) вроде команды константы содержать не могут - тупо места в слове то нету - только мелкие константы в некоторых командах. А может и путаю уже. - xarcas(08.03.2023 22:21)
- Придумали язык высокого уровня, чтобы забыть про все эти регистры и
инструкции, но потом усердно начали тащить их обратно. Это
шизофрения. - SciFi(08.03.2023 21:58)
- Зато теперь нужно думать, l-value или r-value вот это значение. - =AlexD=(09.03.2023 10:02)
- Ну вот придумали смолоток, где "всё есть объект", казалось бы, как грамотно и прозрачно. И где тот смолоток? На нём хоть что-то написали вообще? А всё потому что тормоза скорее всего не дали взмыть. Это не шизофрения, это - жизнь. Полная компромиссов, ибо по другому нормально не работает. - xarcas(08.03.2023 22:25)
- В конце концов, все в этом мире – вопрос интерпретации, и квазинаучное описание спиритического сеанса так же верно, как и все остальные. Да и потом, любой просветленный дух согласится с тем, что он не существует.(с) IBAH(1 знак., 08.03.2023 22:06, картинка)
- На переменную в стеке нельзя взять указатель?! Все вопрос
интерпретации. Если бы изучения языка начинали не с переменных, а с
указателей, то переменную объясняли бы "значение которое лежит по
указателю". И все бы говорили переменные "зло". Человечеству
засрали мозг этими переменными-ссылками. Кстати, кажись в кортексе
нет непосредственной загрузки констант, так что константа тоже
указатель. - IBAH(08.03.2023 21:56)
- Можно подумать, что если объявить в сях локальную переменную, то
она станет указателем. На самом деле, в сях (да и в плюсах) по типу
свегда видно, указатель или нет и на что указывает. Во многих
современных языках такой роскоши нету. То есть можно еще устать
угадывать в хипе оно лежит или на стеке. - xarcas(08.03.2023 21:40)
- тупанул... регистровая переменная в некоторых системах не
указатель... Переменная-ссылка-указатель вопрос интерпретации, как
человеком, так и компилятором - IBAH(08.03.2023 19:10)
- Что за глупость я только что прочитал - POV(08.03.2023 19:04)
- Да почти так же как и с goto - лучше не юзать, если особой нужды
нету. Но с указателями она чаще есть. А в сях без плюсов - и
вариантов нету. У ссылки есть одно большое преимущество перед
указателем - компилятор попытается отследить время жизни того, на
что она указывает (понятно, что можно и обмануть). - xarcas(08.03.2023 13:03)
- Хм, ясно, понятно. А вместо ручного выделения памяти что
предлагают? - symbions(08.03.2023 18:38)
- Если ручное - статическое, то тут и предлагать нечего. А если про
динамическое - то тут тоже ничего нового, альтернативы хипу еще не
придумали. А вот если это про сборку мусора - то тут везде по
разному. Но в плюсах вроде только "умные" указатели разных сортов -
не бесплатные, само собой. - xarcas(08.03.2023 21:43)
- Ясно - анафеме предали, а замену не предложили - symbions(08.03.2023 22:33)
- Если ручное - статическое, то тут и предлагать нечего. А если про
динамическое - то тут тоже ничего нового, альтернативы хипу еще не
придумали. А вот если это про сборку мусора - то тут везде по
разному. Но в плюсах вроде только "умные" указатели разных сортов -
не бесплатные, само собой. - xarcas(08.03.2023 21:43)
- Хм, ясно, понятно. А вместо ручного выделения памяти что
предлагают? - symbions(08.03.2023 18:38)
- можно обратиться к несуществующему объекту - 3m(08.03.2023 12:57)
- Вообще то и переменная и ссылка, по сути, указатель. - IBAH(08.03.2023 18:59)
- А с указателями-то что? Ну, пытаются настаивать что лучше ссылка..
и я с этим согласен. Но это ж все равно тот же указатель по сути. - POV(08.03.2023 12:28)
- Всю взрослую часть жизни бедный поциент в меру сил избавляется от бреда, который ему вбили в бошку, пока он был мал и уязвим, и это касается далеко не только готы. Как-то раз я прочитал слова к песне "The Unforgiven" в исполнении вокально-инструментального ансамбля Metallica, вот там примерно об этом, грустная история :-( - SciFi(08.03.2023 10:58)
- Странно, что прошло незамеченным: "О вреде GOTO-фобии (с примерами на C)". Там и покинувший нас будёновец в комментариях отметился. Chum_A(1 знак., 07.03.2023 13:38, ссылка)Anvar
- Статья интересна только тем, что против мейнстрима. Примеры в ней, частично, странные. Камменты, преимущественно, адъ и Израиль. fk0, признающий что в Цэ goto бывает весьма полезен - удивил, помнится будучи здесь он имел другое мнение. Видимо проникся. - LightElf(05.03.2023 19:35)
- В этом потоке примеров утонул основной смысл такого действия как "написание программы". Задача программиста - объяснить компилятору алгоритм и при этом самому не ошибиться. Вот пример того как компилятор "понял" что я хочу сделать. VladislavS.(1 знак., 05.03.2023 14:32, картинка)
- Интересно, как статью прокомментирует юное дарование VladislavS. - POV(05.03.2023 13:54)
- Хочешь я прокомментирую. Даже если не хочешь, всё равно напишу. Статью с трудом осилил, много букв, много говнокода. Все примеры - как делать не надо! А как надо спросите. Если есть С++ - то деструкторы. Если строго С, то использовать if - else. Ресурсы выделять, использовать и освобождать в зависимости от значения их дескрипторов. Например, Costic(146 знак., 05.03.2023 18:52)
- Всегда считал хамство признаком отсутствия аргументов в споре. - VladislavS.(05.03.2023 14:21)
- Ошибаетесь. Просто это элементарная невоспитанность. - SciFi(05.03.2023 14:26)
- fk0 как всегда в технических вопросах приятно читать, скучаю. - Oman(05.03.2023 13:44)
- Ещё одно напоминание о том, что таланту нужно создавать комфортные
условия, иначе он уйдёт. Увы, среди бедуинов ему некомфортно :-( - SciFi(05.03.2023 14:14)
- "Я не червонец, чтобы всем нравиться." © - Toчкa oпopы(05.03.2023 14:32)
- А что тогда все-таки приключилось, когла fk0 ушел? - Evgeny_CD(05.03.2023 14:30)
- человек был либеральных взглядов, здесь чувствовал дискомфорт. потом был конфликт с MBedder-ом, Володя писал что по телефону они уладили отношения. но fk0 так и не вернулся. - m16(05.03.2023 20:41)
- Не знаю. Предполагаю, что какая-то "последняя капля" была. Он всегда недовольный тут был, ЕМНИП. - SciFi(05.03.2023 14:35)
- Зато в сахаре наблюдаем закон сохранения мудаков. Кто-то уйдет - сразу начнет всё вокруг мазать говном иной персонаж, до сих пор в таком незамеченный... У Азимова был рассказ на эту тему. - POV(05.03.2023 14:20)
- Ещё одно напоминание о том, что таланту нужно создавать комфортные
условия, иначе он уйдёт. Увы, среди бедуинов ему некомфортно :-( - SciFi(05.03.2023 14:14)
- Спасибо. По вашей ссылке есть ссылка на антипаттерн "Стрелка". Тоже полезное чтение. Cкpипaч(1 знак., 05.03.2023 13:12, ссылка)
- Один студент сегодня при случайном упоминании гото (асм обсуждали
на самом деле) "а ведь это считается неправильным!". Блядь! У него
за душой и "Хелло ворд" нету, а "мнение" ему уже вбили всякие
мудаки... POV(195 знак., 08.03.2023 00:01)
- в сях еще лонг жамп есть, но боже упаси так оголодать. - Nikolay801_(26.02.2023 13:14)
- Бутлоадеры используют лонг джамп ту 0, и что? Чтобы не марать Си,
можно написать asm("jmp 0"); :))) - vpv.vpv(28.02.2023 06:56)
- Бутлодеры делают вот так VladislavS.(75 знак., 28.02.2023 13:15)
- Ну и во что это скомпилируется? Листинг-то кто-нибудь смотрит?
Вызов функции по указателю - это индирект колл. А нужен лонг джамп. - vpv.vpv(01.03.2023 07:29)
- Какие проблемы? VladislavS.(1 знак., 01.03.2023 08:44, картинка)
- А какая разница? Адрес возврата в стек сохраняется? my_app() всё
равно заново стек инициализирует. - Ale3000(01.03.2023 07:47)
- Воот! Именно! И я про что. Если нет разницы, то какой смысл лепить
адрес к указателю на функцию и после её вызывать, если можно просто
сразу прыгнуть на этот же адрес? - vpv.vpv(02.03.2023 07:25)
- Пример с листингом, конечно же, будет? VladislavS.(1 знак., 02.03.2023 08:42, картинка)
- Да, пожалуйста: asm ("jmp 0"); делает безусловный и длинный (24-х битный) vpv.vpv(104 знак., 09.03.2023 07:29)
- Пример с листингом, конечно же, будет? VladislavS.(1 знак., 02.03.2023 08:42, картинка)
- Воот! Именно! И я про что. Если нет разницы, то какой смысл лепить
адрес к указателю на функцию и после её вызывать, если можно просто
сразу прыгнуть на этот же адрес? - vpv.vpv(02.03.2023 07:25)
- Ну и во что это скомпилируется? Листинг-то кто-нибудь смотрит?
Вызов функции по указателю - это индирект колл. А нужен лонг джамп. - vpv.vpv(01.03.2023 07:29)
- Бутлодеры делают вот так VladislavS.(75 знак., 28.02.2023 13:15)
- Это больше для разработчиков мини-ОС. - Cкpипaч(26.02.2023 13:35)
- Ну изначально - это типа обработки исключительных ситуаций. В
корутинах оно работает по стечению обстоятельств, в противоречии со
стандартом. - _LightElf(01.03.2023 00:25,
)
- Может быть и так. Просто на глаза попадалось несколько application
notes на тему как на лонгджампах сделать конкурентную
мультизадачность, без ассемблера. Складно получалось. - Cкpипaч(01.03.2023 13:43)
- На пустынных просторах есть и моё поделие на эту тему :-) И где-то
на компе валяется продвинутый вариант, с блекджеком и семафорами.
Но оно работает только и исключительно потому, что писатели модных
компиляторов ещё не добрались грязными лапками до этих закоулков.
Тама фишка в том, что переход по longjmp "вниз" по дереву вызовов -
не определен. То есть если foo() вызывает bar(), то longjmp назад
из bar() в foo() корректен, а вот в обратную сторону - нет. - LightElf(08.03.2023 15:24)
- Разумеется все об этом знают, и поэтому в нитях не используют локальные переменные. Только глобальные. Ибо после раскрутки стека, закрутить его обратно невозможно. - =AlexD=(09.03.2023 09:52)
- "Цэ нитки"? Скачал в коллекцию, ссылочку рядом положил. Пока не
понял, как кроме задержек на что-то применить, хотя бы
ct_wait_while() Dingo(1 знак., 09.03.2023 06:20, ссылка)
- Ну это кооперативая многозадачка, сваянная на коленке по приколу. Каждая нитка имеет свой кусок стека, который отрезается от исходного системного стека. Где-то валяется более продвинутый вариант, выложу если найду. Там есть семафоры, мутексы и статические приоритеты задач. Но его на железе не тестил - только на компе. - LightElf(09.03.2023 10:52)
- На пустынных просторах есть и моё поделие на эту тему :-) И где-то
на компе валяется продвинутый вариант, с блекджеком и семафорами.
Но оно работает только и исключительно потому, что писатели модных
компиляторов ещё не добрались грязными лапками до этих закоулков.
Тама фишка в том, что переход по longjmp "вниз" по дереву вызовов -
не определен. То есть если foo() вызывает bar(), то longjmp назад
из bar() в foo() корректен, а вот в обратную сторону - нет. - LightElf(08.03.2023 15:24)
- Может быть и так. Просто на глаза попадалось несколько application
notes на тему как на лонгджампах сделать конкурентную
мультизадачность, без ассемблера. Складно получалось. - Cкpипaч(01.03.2023 13:43)
- Ну изначально - это типа обработки исключительных ситуаций. В
корутинах оно работает по стечению обстоятельств, в противоречии со
стандартом. - _LightElf(01.03.2023 00:25,
- Ха, прикольно! POV(1 знак., 26.02.2023 13:23, ссылка)
- Бутлоадеры используют лонг джамп ту 0, и что? Чтобы не марать Си,
можно написать asm("jmp 0"); :))) - vpv.vpv(28.02.2023 06:56)
- Не ответ, а подветка. Про goto. Полез тут, по случаю, посмотрел
свой старый код управления разными жопогрейками. Cкpипaч(506 знак., 25.02.2023 10:30)
- все это вкусовщина, мне больше нравится do-while(0) abivan(1 знак., 28.02.2023 14:20, картинка)
- Ну вот же, значит не я один так писал. У меня правда while(false) написано - забыл просто что в сях так не работает. - xarcas(01.03.2023 06:43)
- Ну и как решается вопрос нескольких блоков финализации? - Cкpипaч(28.02.2023 20:33)
- не претендую. Считаю, что "кто как хочет так и дрочит". Хотите гоуту пишите гоуту. Я обхожусь. Многим мой стиль программирования не нравится. abivan(211 знак., 01.03.2023 12:27, картинка)
- Красиво. Но не предполагает ветвящегося кода. - POV(28.02.2023 14:22)
- Так это и не о ветвлениях и циклах - там другие подходы. Это - про early return с освобождением ресурсов. - xarcas(01.03.2023 06:44)
- хм, симпатишно... - SciFi(28.02.2023 14:22)
- О структурированности. =AlexD=(286 знак., 28.02.2023 10:02 - 10:09)
- Второй вариат лучше так гoвнoкoдep(117 знак., 28.02.2023 11:34,
)
- Согласен. Но устроил опрос, может быть кто-то может предложить еще что-то неожиданное :) - Cкpипaч(28.02.2023 10:05)
- Второй вариат лучше так гoвнoкoдep(117 знак., 28.02.2023 11:34,
- Вместо goto, пока на сях писал, успешно юзал "do { тут код }
while(false);" с брейками внутри и установкой флажка успеха
(например) в конце. Чистка - руками после. На плюсах без эксепшнов
(а таких попадалось весьма много) - то же самое, но с чисткой через
RAII - очень удобно и кошерно. Еще, как вариант, плодить функции -
тем самым заменяем goto на return. Но это не всегда бесплатно. А
вообще, всякая "подчистка-подготовка" решается созданием копии
чего-там-надо-менять в xarcas(125 знак., 28.02.2023 08:02)
- ВОт - золотые слова - "Но это не всегда бесплатно". А стало быть не
всегда ГОТО зло. Например у МК всего 6 кб кода и плодить всякие
создания копии, плодить функции. лишние флажки (чтоб только гото не
было) и прочее - 300 байт на ровном месте - знаем, проходили. Так
что спор бесмыслен. Единственно что - использование ГОТО - это
значить комментировать, комментировать и комментировать - только
так можно заметно снизить проблемы при будущей доработке. - symbions(28.02.2023 09:30)
- Увидев большие буквы в тексте, я наконец понял, откуда пошли
Готы!!! - Kpoк(28.02.2023 10:06)
- А я не припомню готосрачъ в пустыне. С почином? - SciFi(01.03.2023 14:34)
- Да нет никакого срача. Кто использует - пишет, что бывает удобно с
эти оператором и показывает примеры. Кто не использует - просто
изречения религиозные с кучей слов произносит. - POV(02.03.2023 10:35)
- Дык я не в смысле поругать, а наоборот. В 100500 лучше, чем
хохлосрачъ. - SciFi(02.03.2023 10:37)
- Без мягкого знака :-( - Kpoк(02.03.2023 10:51)
- Обижаете, баринъ. - SciFi(02.03.2023 11:00)
- Без мягкого знака :-( - Kpoк(02.03.2023 10:51)
- Дык я не в смысле поругать, а наоборот. В 100500 лучше, чем
хохлосрачъ. - SciFi(02.03.2023 10:37)
- Ага. И будет наша пустыня "Дом Готов" - Kpoк(02.03.2023 10:33)
- Всегда готов? - SciFi(02.03.2023 10:35)
- А то! Kpoк(1 знак., 02.03.2023 11:40, ссылка)
- Наверняка есть японский городовой с фамилией Гото. И не один! SciFi(1 знак., 02.03.2023 11:45, ссылка)
- А то! Kpoк(1 знак., 02.03.2023 11:40, ссылка)
- Всегда готов? - SciFi(02.03.2023 10:35)
- Да нет никакого срача. Кто использует - пишет, что бывает удобно с
эти оператором и показывает примеры. Кто не использует - просто
изречения религиозные с кучей слов произносит. - POV(02.03.2023 10:35)
- А я не припомню готосрачъ в пустыне. С почином? - SciFi(01.03.2023 14:34)
- Не там золото ищете. Главное в том, что если вы собираетесь делать
условные "жопогрейки", где кода несколько килобайт, то можете
втыкать goto хоть через строку. А если таки планируете расти как
программист с перспективой поработать в командах на десятки и сотни
человек - то про goto лучше забыть. Чем раньше, тем лучше. Это я
как поживший в обоих мирах примерно поровну так считаю. - xarcas(28.02.2023 09:44)
- Хм, снобство детектид. Что не отменяет того, что отказ от ГОТО не
универсальный рецепт. И да - в крупных командах свои правила - и им
надо следовать. Хотя за полгода я плотно поковырялся в 3 крупных
свободных проектах - там везде ГОТО, правда в основном как переход
при ошибке на выход из функции - как тут в паралельной ветке
обсуждают. Так что и тут не всё так однозначно - symbions(28.02.2023 12:57)
- Это не снобизм, а личный опыт. И цель тут не понты, а тупо деньги.
Хочешь денег - играй по правилам. А в свободных проектах могут хоть
матом писать - там то всё можно. Только денег не платят. - xarcas(28.02.2023 15:32)
- Ну я не на свободном проекте. Исходники в разы больше линуха. goto
сплошь и рядом. Поколения программистов идиоты, не знают как
правильно писать?... POV(87 знак., 28.02.2023 17:22)
- Размер исходников - еще не показатель качества кода. Как раз в том
проекте, где был свитч на 6 тыщ строк кода с гоутами унутре, было
тоже кода больше чем в линухе или сравнимо. Вот только половина
минимум была настолько позорной, что ужас. Даже просто собрать это
барахло было уже чудом. Ну броадком - те ещё говноделы. Кстати,
насколько мне известно, они очень активно юзают рабский труд
(галерных гребцов, в частности Accenture и похожие) - а при таком
подходе о качестве кода xarcas(321 знак., 28.02.2023 20:56)
- Так забавно наблюдать самолюбование собеседника )) Вас, таких
категоричных неадекватов, тут уже минимум двое... POV(291 знак., 28.02.2023 23:24)
- Еще раз, для адекватов. Применение гото, несомненно оправдано во
многих случаях. Таких, например, как мелкий эмбед, всякие
закрученные алгоритмы - кодеки, архиваторы, рендеры (это только то
что на память пришло). Мысль была о том, что это должен быть last
resort. То есть, стоит постараться обходиться без него. Ну и
понятно, что как раз у броадкома похожих задач много, уже поэтому
нагрепать goto по сырцам получится. Но это же не значит, что они
все там в тему и надо теперь xarcas(34 знак., 01.03.2023 06:24)
- ай-яй-яй а кто это всё наделал? гoyтyкoдep(259 знак., 02.03.2023 08:05,
, ссылка)
- Похоже на транслит ассемблера, коим скорее всего и является. Опять
же - уже написал же несколько раз, имеются случаи (особенно на сях
актуально), где гото оправдано. Но этих случаев исчезающе мало.
Прямо про этот отрывок - как часто среднестатистическому кодеру
(даже ембедеру даже на сях) приходится системные вызовы ядра
писать/модифицировать (да хоть бы и читать)? Правильно - никогда. В
ядре goto может иметь место например, когда такты важны, но не
настолько чтобы в xarcas(149 знак., 02.03.2023 08:23)
- Я baremetal пишу 50% времени. - Cкpипaч(02.03.2023 08:35)
- Похоже на транслит ассемблера, коим скорее всего и является. Опять
же - уже написал же несколько раз, имеются случаи (особенно на сях
актуально), где гото оправдано. Но этих случаев исчезающе мало.
Прямо про этот отрывок - как часто среднестатистическому кодеру
(даже ембедеру даже на сях) приходится системные вызовы ядра
писать/модифицировать (да хоть бы и читать)? Правильно - никогда. В
ядре goto может иметь место например, когда такты важны, но не
настолько чтобы в xarcas(149 знак., 02.03.2023 08:23)
- "Ну вот вы уже и торгуетесь." - POV(01.03.2023 09:13)
- ай-яй-яй а кто это всё наделал? гoyтyкoдep(259 знак., 02.03.2023 08:05,
- "Обсуждать с начальником применение goto" - сюрр какой-то. Вопрос максимум для флейма на форуме, а они его "тремя сеньёрами" решают. ВВП спосите :) - VladislavS.(28.02.2023 23:56)
- Еще раз, для адекватов. Применение гото, несомненно оправдано во
многих случаях. Таких, например, как мелкий эмбед, всякие
закрученные алгоритмы - кодеки, архиваторы, рендеры (это только то
что на память пришло). Мысль была о том, что это должен быть last
resort. То есть, стоит постараться обходиться без него. Ну и
понятно, что как раз у броадкома похожих задач много, уже поэтому
нагрепать goto по сырцам получится. Но это же не значит, что они
все там в тему и надо теперь xarcas(34 знак., 01.03.2023 06:24)
- Не меньше а больше повезло :) - symbions(28.02.2023 23:07)
- Так забавно наблюдать самолюбование собеседника )) Вас, таких
категоричных неадекватов, тут уже минимум двое... POV(291 знак., 28.02.2023 23:24)
- Размер исходников - еще не показатель качества кода. Как раз в том
проекте, где был свитч на 6 тыщ строк кода с гоутами унутре, было
тоже кода больше чем в линухе или сравнимо. Вот только половина
минимум была настолько позорной, что ужас. Даже просто собрать это
барахло было уже чудом. Ну броадком - те ещё говноделы. Кстати,
насколько мне известно, они очень активно юзают рабский труд
(галерных гребцов, в частности Accenture и похожие) - а при таком
подходе о качестве кода xarcas(321 знак., 28.02.2023 20:56)
- Снобизм - типа проекты на мелких МК - это не эмбедит. А там труда и
пользы (в том числе и денежной) может быть много. Да и в свободных
проектах платят тоже, например, была вакансия во FreeBSD - очень
даже ничего зарплата. Да - не во всех, но и не во всех крупных
конторах платят хорошо, а мозготраха может быть до чёртиков - symbions(28.02.2023 17:19)
- Я уже упоминал, я поиграл и там и тут. Понятно, что с
энтерпрайзными подходами в мелком эмбеде делать нечего. Но если
брать именно программирование, как "чистое искусство" - то и
энтерпрайз кое-чего наработал из полезных практик - может стоит и
посмотреть. А если планировать до пенсии 51-е прогать на асме - то
оно и нахрен не нужно это всё, тут вопросов нет. Но скучно же. xarcas(151 знак., 28.02.2023 21:01)
- Ну так и в больших конторах мелкие МК используют. А так да,
хотелось бы посмотреть на лучшие практики :) Но нет аналога ХиХ в
применении С в эмбедиенге - везде разные мнения. А опыт с ПК не
совсем подходит к нашей сфере, точнее не ко всем областям в нашей
сфере это подходит - symbions(28.02.2023 23:05)
- Сферу, если что, можно и подвинуть - было бы желание. Между 51-м и
ПК еще есть много всего. Насчёт подходящего опыта - как-то я
специально запрогал устройство на плюсах - просто из принципа,
посмотреть, получится у меня или нет. Конечно, это был и не 51-й,
это был LPC какой-то на арме, там аж 16 кб оперативы было.
Устройство было простенькое, но с цветным экраном 128х128 и
джойстиком кнопочным. И ничего - вполне себе нормально можно под
такое на плюсах писать, как оказалось. xarcas(91 знак., 01.03.2023 06:37)
- Угу. Шо будем с 51ым делать и с приборами, в которые они идеально
вписываются? А С++ и для ATXmeg хорошо подходит, жаль 2014 год убил
тот проект - symbions(01.03.2023 09:23)
- Под "двинуть сферу" я имел в виду сдвинуться самому, если желание
возникнет. Оставив 51-е приборы кому-то ещё. А вот тут то, при
сдвиге сферы, и понадобится избавляться от мелких гвоздиков,
которыми штаны к лавке прибиты. goto - просто один из таких
гвоздиков. - xarcas(01.03.2023 10:00)
- НУ спасибо, конечно, что беспоко итесь за мой проф.рост, но это не
отменяет того факта, что ГОТО приемлемо. И да, ещё до СВО я уже
поменял свою сферу, а уж теперь то. И тут ГОТО встречается очень
часто - честно, был удивлён, думал в ПО для ПК ГОТО редко
используется. Правда софт системного уровня, может поэтому так тут. - symbions(01.03.2023 10:59)
- Джаверы энтерпрайзные юзают гото и не парятся. Даже несмотря на то,
что у них даже слова такого в языке нету - механизм есть всё равно
и они им не брезгуют. Но это же не значит, что надо с таких пример
то брать. А то, что много встречается - не всегда и показатель
качества. Жыгулей на дорогах тоже много, что не отменяет факта, что
они - дряшло. - xarcas(01.03.2023 11:10)
- Срач про гото ни о чем. Это не какой-то новый подход (например
категорически исключить глобальные переменные), а просто оператор.
Применяется внутри функции, ни на что снаружи не влияет.
Категорическое неприятие гото - это снобизм помноженный на
зашоренность... ну как правило - отсутствие значимого опыта... POV(694 знак., 01.03.2023 14:40)
- Отчего же ни о чём. Как раз о том, что не надо юзать гото без нужды
и нужда эта крайне редкая. А так то применяйте, жалко что ли.
Просто потом не удивляйтесь, когда с вами попрощаются на третьей
минуте собеседования или на второй день испытательного срока. Я
считаю, что в любой нормальной конторе goto - прямая путёвка за
дверь. Понятно, что есть исключения, типа или ембед мелкий или
разработка на голых сях идёт. Но правило - именно такое. - xarcas(01.03.2023 15:41)
- Нет никакого "правила". Есть в той или иной степени обоснованные
требования работодателя к коду. И этих требований придерживаться
надо обязательно (на то он и работодатель). Но мы же не об этом? Мы
ж за идею спорим? - POV(01.03.2023 15:43)
- Это исключительно моё мнение, основанное на моём опыте, само собой.
А так - можно попробовать сходить на собес в яндекс или к
касперскому (например) на плюсы (у них обычно есть вакансии всегда)
- и влепить там goto прямо на собесе. Уверен - будет весело. - xarcas(01.03.2023 15:47)
- Меня на собеседовании такой тривиальщиной в Касперском не грузили. - POV(01.03.2023 15:48)
- Это исключительно моё мнение, основанное на моём опыте, само собой.
А так - можно попробовать сходить на собес в яндекс или к
касперскому (например) на плюсы (у них обычно есть вакансии всегда)
- и влепить там goto прямо на собесе. Уверен - будет весело. - xarcas(01.03.2023 15:47)
- Нет никакого "правила". Есть в той или иной степени обоснованные
требования работодателя к коду. И этих требований придерживаться
надо обязательно (на то он и работодатель). Но мы же не об этом? Мы
ж за идею спорим? - POV(01.03.2023 15:43)
- Отчего же ни о чём. Как раз о том, что не надо юзать гото без нужды
и нужда эта крайне редкая. А так то применяйте, жалко что ли.
Просто потом не удивляйтесь, когда с вами попрощаются на третьей
минуте собеседования или на второй день испытательного срока. Я
считаю, что в любой нормальной конторе goto - прямая путёвка за
дверь. Понятно, что есть исключения, типа или ембед мелкий или
разработка на голых сях идёт. Но правило - именно такое. - xarcas(01.03.2023 15:41)
- Да-а-а-а. ГОТО настолько не нужен, что его из языка выпилили, а
люди всё равно его используют. - symbions(01.03.2023 14:30)
- Там ручной, кастрированный гото. Зовут labeled break - умеет просто из именованного цикла выходить - любой вложенности. В некоторых современных языках бывает еще labeled continue - гото на начало именованного цикла. К слову, в модных нынче языках гото, как и в джаве, нету вообще: rust, kotlin, swift, например. Просто отсутствует как класс. И ничего - жалобы только от тех, кто пытается всякие ffmpeg или openSSL портировать - там гото через строку же - xarcas(02.03.2023 07:50)
- Срач про гото ни о чем. Это не какой-то новый подход (например
категорически исключить глобальные переменные), а просто оператор.
Применяется внутри функции, ни на что снаружи не влияет.
Категорическое неприятие гото - это снобизм помноженный на
зашоренность... ну как правило - отсутствие значимого опыта... POV(694 знак., 01.03.2023 14:40)
- Джаверы энтерпрайзные юзают гото и не парятся. Даже несмотря на то,
что у них даже слова такого в языке нету - механизм есть всё равно
и они им не брезгуют. Но это же не значит, что надо с таких пример
то брать. А то, что много встречается - не всегда и показатель
качества. Жыгулей на дорогах тоже много, что не отменяет факта, что
они - дряшло. - xarcas(01.03.2023 11:10)
- НУ спасибо, конечно, что беспоко итесь за мой проф.рост, но это не
отменяет того факта, что ГОТО приемлемо. И да, ещё до СВО я уже
поменял свою сферу, а уж теперь то. И тут ГОТО встречается очень
часто - честно, был удивлён, думал в ПО для ПК ГОТО редко
используется. Правда софт системного уровня, может поэтому так тут. - symbions(01.03.2023 10:59)
- Под "двинуть сферу" я имел в виду сдвинуться самому, если желание
возникнет. Оставив 51-е приборы кому-то ещё. А вот тут то, при
сдвиге сферы, и понадобится избавляться от мелких гвоздиков,
которыми штаны к лавке прибиты. goto - просто один из таких
гвоздиков. - xarcas(01.03.2023 10:00)
- Угу. Шо будем с 51ым делать и с приборами, в которые они идеально
вписываются? А С++ и для ATXmeg хорошо подходит, жаль 2014 год убил
тот проект - symbions(01.03.2023 09:23)
- Сферу, если что, можно и подвинуть - было бы желание. Между 51-м и
ПК еще есть много всего. Насчёт подходящего опыта - как-то я
специально запрогал устройство на плюсах - просто из принципа,
посмотреть, получится у меня или нет. Конечно, это был и не 51-й,
это был LPC какой-то на арме, там аж 16 кб оперативы было.
Устройство было простенькое, но с цветным экраном 128х128 и
джойстиком кнопочным. И ничего - вполне себе нормально можно под
такое на плюсах писать, как оказалось. xarcas(91 знак., 01.03.2023 06:37)
- Ну так и в больших конторах мелкие МК используют. А так да,
хотелось бы посмотреть на лучшие практики :) Но нет аналога ХиХ в
применении С в эмбедиенге - везде разные мнения. А опыт с ПК не
совсем подходит к нашей сфере, точнее не ко всем областям в нашей
сфере это подходит - symbions(28.02.2023 23:05)
- Я уже упоминал, я поиграл и там и тут. Понятно, что с
энтерпрайзными подходами в мелком эмбеде делать нечего. Но если
брать именно программирование, как "чистое искусство" - то и
энтерпрайз кое-чего наработал из полезных практик - может стоит и
посмотреть. А если планировать до пенсии 51-е прогать на асме - то
оно и нахрен не нужно это всё, тут вопросов нет. Но скучно же. xarcas(151 знак., 28.02.2023 21:01)
- Ну я не на свободном проекте. Исходники в разы больше линуха. goto
сплошь и рядом. Поколения программистов идиоты, не знают как
правильно писать?... POV(87 знак., 28.02.2023 17:22)
- Это не снобизм, а личный опыт. И цель тут не понты, а тупо деньги.
Хочешь денег - играй по правилам. А в свободных проектах могут хоть
матом писать - там то всё можно. Только денег не платят. - xarcas(28.02.2023 15:32)
- ...заклюют :) Cкpипaч(184 знак., 28.02.2023 09:56 - 11:29)
- Совершенно напрасно так думаете. Исключения далеко не везде - разве
что на серверах. Сборка мусора - тем более редкость, хотя
управление памятью всё равно - боль (а что поделать). Вместо
"развитой объектной модели" - зачастую тонны (или даже мегатонны)
адского говнокода. xarcas(89 знак., 28.02.2023 10:11)
- Legacy? Уж что-что, а объектная модель ПО доказала свою абсолютную применимость, разве нет? - Cкpипaч(28.02.2023 12:01)
- У каждого свой опыт. Слышал, на Коболе тоже много платят :) Если
говорить о том, чему у коллег учится, то это в первую очередь
менеджмент. Дальше (с большим отрывом) - паттерны проектирования.
После этого - снова менеджмент, в контексте выстраивания отношений
с заказчиком. - Cкpипaч(28.02.2023 11:33)
- Ну не все хотят в менежмент. И с людьми общаться тоже не все жаждут
(с заказчиками особенно). Некоторые просто хотят решать (кодить)
поставленные руководством задачки и выгребать систематически бабло
из банкомата. Кобол - скорее исключение. Там платят просто потому,
что очень мало их, кобол-программистов. - xarcas(28.02.2023 12:34)
- Менеджмент рекомендую понимать даже самому мизантропичному
аутисту-затворнику. Хорошо мозги прочищает. - Cкpипaч(28.02.2023 16:50)
- В программисты люди собственно и идут, что-бы с людьми поменьше
общатся и без этих ваших менеджементов... - Chip_n_Go(28.02.2023 17:22,
)
- Еще раз, менеджеры - люди, менеджмент - область знаний. Многим
похожая на технику безопасности. Не влезай, убъет, а если уж полез
- выключи питание, повесь табличку, внеси запись в журнал. Cкpипaч(98 знак., 28.02.2023 20:11)
- У меня слово "менеджер" - синоним "знаменосец на гей-параде". Без
исключений. Хорош только мёртвым. Других не видел и не рассчитываю
увидеть. Приходится терпеть как неизбежное зло. - xarcas(28.02.2023 21:04)
- И все равно не отстану. Можно сколько угодно презирать инженера по
ТБ, но саму ТБ стоит хотябы немного знать. That's the point. - Cкpипaч(28.02.2023 21:08)
- ТБ - то другое. Его надо знать, чтоб током не убило. А с манагерами
всё что надо знать - это как его на$бывать. Как правило это не
трудно - они же тупые как пробки. Трудно зато держать себя в руках
и не посылать их нах каждый раз, когда они ахинею несут. Вот для
меня это - самый сложный челлендж, который я фэйлю периодически,
увы. - xarcas(01.03.2023 06:31)
- "ТБ - то другое". Настаиваю. "Менеджмент" это не только НЕ другое,
но и суть более всеобьемлящий подход, для которого ТБ - частный
случай. РМВОК, написанна такой же кровью, как и ПУЭ. Cкpипaч(263 знак., 01.03.2023 08:18)
- Ничего не понял, если честно. Совсем игнорить тупиц с агиле в моём
случае не выйдет - они повсюду. А где их нет - денег не платят. Так
что проблема, как я уже упоминал, только с anger management -
просто чтобы не сорваться. А чему учат манагеров - и так все видели
в действии: лизать жопу вышестоящим манагерам и орать на
подчинённых, изображая работу. Я других проявлений не наблюдаю. Что
там изучать то? И так всё понятно. - xarcas(01.03.2023 09:57)
- Я видел проекты, которые состоялись ТОЛЬКО благодаря одному-двум
менеджерам. Видел и проекты, которые с треском провалились ТОЛЬКО
потому что в них было некому. Cкpипaч(226 знак., 01.03.2023 13:45)
- Гугл, Линукс, Ватсап, ЖЖ - да тыщи их. А вот чтобы манагеры без
прошраммистов что-то сделали - что-то не упомню ни одного как раз. - xarcas(01.03.2023 15:44)
- Общестрой. Тяжелая индустрия. Армия. Cкpипaч(69 знак., 01.03.2023 16:07)
- Про шутки: создано то программистами. Теперь то там совсем по другому, это понятно. - xarcas(02.03.2023 07:52)
- Общестрой. Тяжелая индустрия. Армия. Cкpипaч(69 знак., 01.03.2023 16:07)
- Гугл, Линукс, Ватсап, ЖЖ - да тыщи их. А вот чтобы манагеры без
прошраммистов что-то сделали - что-то не упомню ни одного как раз. - xarcas(01.03.2023 15:44)
- Я видел проекты, которые состоялись ТОЛЬКО благодаря одному-двум
менеджерам. Видел и проекты, которые с треском провалились ТОЛЬКО
потому что в них было некому. Cкpипaч(226 знак., 01.03.2023 13:45)
- Ничего не понял, если честно. Совсем игнорить тупиц с агиле в моём
случае не выйдет - они повсюду. А где их нет - денег не платят. Так
что проблема, как я уже упоминал, только с anger management -
просто чтобы не сорваться. А чему учат манагеров - и так все видели
в действии: лизать жопу вышестоящим манагерам и орать на
подчинённых, изображая работу. Я других проявлений не наблюдаю. Что
там изучать то? И так всё понятно. - xarcas(01.03.2023 09:57)
- "ТБ - то другое". Настаиваю. "Менеджмент" это не только НЕ другое,
но и суть более всеобьемлящий подход, для которого ТБ - частный
случай. РМВОК, написанна такой же кровью, как и ПУЭ. Cкpипaч(263 знак., 01.03.2023 08:18)
- ТБ - то другое. Его надо знать, чтоб током не убило. А с манагерами
всё что надо знать - это как его на$бывать. Как правило это не
трудно - они же тупые как пробки. Трудно зато держать себя в руках
и не посылать их нах каждый раз, когда они ахинею несут. Вот для
меня это - самый сложный челлендж, который я фэйлю периодически,
увы. - xarcas(01.03.2023 06:31)
- И все равно не отстану. Можно сколько угодно презирать инженера по
ТБ, но саму ТБ стоит хотябы немного знать. That's the point. - Cкpипaч(28.02.2023 21:08)
- У меня слово "менеджер" - синоним "знаменосец на гей-параде". Без
исключений. Хорош только мёртвым. Других не видел и не рассчитываю
увидеть. Приходится терпеть как неизбежное зло. - xarcas(28.02.2023 21:04)
- Еще раз, менеджеры - люди, менеджмент - область знаний. Многим
похожая на технику безопасности. Не влезай, убъет, а если уж полез
- выключи питание, повесь табличку, внеси запись в журнал. Cкpипaч(98 знак., 28.02.2023 20:11)
- В программисты люди собственно и идут, что-бы с людьми поменьше
общатся и без этих ваших менеджементов... - Chip_n_Go(28.02.2023 17:22,
- Менеджмент рекомендую понимать даже самому мизантропичному
аутисту-затворнику. Хорошо мозги прочищает. - Cкpипaч(28.02.2023 16:50)
- Ну не все хотят в менежмент. И с людьми общаться тоже не все жаждут
(с заказчиками особенно). Некоторые просто хотят решать (кодить)
поставленные руководством задачки и выгребать систематически бабло
из банкомата. Кобол - скорее исключение. Там платят просто потому,
что очень мало их, кобол-программистов. - xarcas(28.02.2023 12:34)
- Совершенно напрасно так думаете. Исключения далеко не везде - разве
что на серверах. Сборка мусора - тем более редкость, хотя
управление памятью всё равно - боль (а что поделать). Вместо
"развитой объектной модели" - зачастую тонны (или даже мегатонны)
адского говнокода. xarcas(89 знак., 28.02.2023 10:11)
- Охренеть, карьерные мечты - работать в команде программистов на
сотни человек. Самое то для эмбеддера. - Kpoк(28.02.2023 10:05)
- Работать, может, и не очень, а поучиться многим стоило бы. Да всем
бы не помешало. А то, в основном, везде радиокружок "очумелые
ручки". - mr-x(28.02.2023 11:16)
- Поучиться завсегда хорошо. - Kpoк(28.02.2023 11:22)
- Ничего нереального: аутомотив или аэроспейс, например. - xarcas(28.02.2023 10:07)
- При всей моей богатой фантазии, никак не могу представить ЧТО в
автомобиле могут программировть больше десяти программистов. Разве
что "мультимедийный центр", но это уже немножко не автомобиль :) - Cкpипaч(28.02.2023 11:32)
- классика жи Nikolay801_(235 знак., 28.02.2023 13:50, youtube)
- МТМ292-12 в разное время программировали от 3 до 5 ти программистов одновременно. Правда основную задачу только один, остальные разные узлы и модули, но факт есть факт - symbions(28.02.2023 13:16)
- Ну прямо тут недавно упоминали про 8 тыщ страниц документации на прошивку ГБУ бнв-шных движков - небось сам код еще больше. Опять же, приходят на память фатальные баги в говнокоде прошивки тойотовской педали (акселератора или тормоза - не помню) - всего одной педали, это даже не двигатель. Деталей не помню, но кода в этой педали было охренеть сколько много. А уж в аэроспейсе - еще больше, там оно еще и трёхмерное же. Это машинки по плоской земле ползают. Ну и еще про xarcas(217 знак., 28.02.2023 12:30)
- Стало быть, Вам, как менеджеру ещё расти и расти :-) - Kpoк(28.02.2023 11:52)
- Не, как менеджер я могу загрузить работой охрененную толпу народу.
По писать код, при этом, будет очень незначительный процент :) - Cкpипaч(28.02.2023 11:58)
- Вот и Билл Гейтс так рассудил. Нефиг кодить, надо подсчитывать
выручку и давить конкурентов. Виндовс и офис сами как-нибудь
накодятся :-) - SciFi(28.02.2023 12:00)
- Есть еще системные аналиики. И тестировщики. Вообще-то, в плане методики в Микрософте очень
продвинуто работают. - Cкpипaч(28.02.2023 12:07)
- Работали до этак 2003го года примерно ,потом всё покати. - =AlexD=(28.02.2023 14:00)
- Есть еще системные аналиики. И тестировщики. Вообще-то, в плане методики в Микрософте очень
продвинуто работают. - Cкpипaч(28.02.2023 12:07)
- Вот и Билл Гейтс так рассудил. Нефиг кодить, надо подсчитывать
выручку и давить конкурентов. Виндовс и офис сами как-нибудь
накодятся :-) - SciFi(28.02.2023 12:00)
- Не, как менеджер я могу загрузить работой охрененную толпу народу.
По писать код, при этом, будет очень незначительный процент :) - Cкpипaч(28.02.2023 11:58)
- При всей моей богатой фантазии, никак не могу представить ЧТО в
автомобиле могут программировть больше десяти программистов. Разве
что "мультимедийный центр", но это уже немножко не автомобиль :) - Cкpипaч(28.02.2023 11:32)
- Работать, может, и не очень, а поучиться многим стоило бы. Да всем
бы не помешало. А то, в основном, везде радиокружок "очумелые
ручки". - mr-x(28.02.2023 11:16)
- Хм, снобство детектид. Что не отменяет того, что отказ от ГОТО не
универсальный рецепт. И да - в крупных командах свои правила - и им
надо следовать. Хотя за полгода я плотно поковырялся в 3 крупных
свободных проектах - там везде ГОТО, правда в основном как переход
при ошибке на выход из функции - как тут в паралельной ветке
обсуждают. Так что и тут не всё так однозначно - symbions(28.02.2023 12:57)
- Преждевременная оптимизация. А вот читабельность, с goto, в данном конкретном контексте, сильно лучше чем при использовании трюков. Насчет "много комментировать" - согласен. Но код с использованием prototheads в любом случае обязательно(!) нужно комментировать. И "большие программисты" правы - лучший комментарий это шаблон проектирования. Cкpипaч(147 знак., 28.02.2023 09:35)
- Увидев большие буквы в тексте, я наконец понял, откуда пошли
Готы!!! - Kpoк(28.02.2023 10:06)
- ВОт - золотые слова - "Но это не всегда бесплатно". А стало быть не
всегда ГОТО зло. Например у МК всего 6 кб кода и плодить всякие
создания копии, плодить функции. лишние флажки (чтоб только гото не
было) и прочее - 300 байт на ровном месте - знаем, проходили. Так
что спор бесмыслен. Единственно что - использование ГОТО - это
значить комментировать, комментировать и комментировать - только
так можно заметно снизить проблемы при будущей доработке. - symbions(28.02.2023 09:30)
- Подрыв засчитан! :) Даже не пересматривая старый код скажу, что
есть функции не только с разными исходами, но и с разными типами
возвращаемого результата. И всё структурировано по красоте, без
разбрасывания десятками в разных местах. - VladislavS.(26.02.2023 06:19)
- брысь. - Cкpипaч(26.02.2023 09:52)
- Я разбираю возможные состояния автомата в switch(). Если где-то
проблема, в конкретном кейсе принимаю неотложные меры и взвожу
соответствующий бит ошибки в слове ошибок. Выход из switch()
штатный, без goto. Nikolay_Po(422 знак., 25.02.2023 10:49)
- А так? Использованы protothreads(switch). Разнесен вход в состояние
(goto) и возврат из планировщика (PT_WAIT). Между меткой goto и
PT_WAIT - код, который выполняется один раз, при входе в состояние. Cкpипaч(49 знак., 25.02.2023 11:35)
- Ну, так сработает наверняка лишь если код внутри состояния не
требует своего контекста, прямолинеен и работает только с
глобальными волатильными переменными. Тогда да - залетели в
обработчик, исполнили и отдали управление ОС. По идее, стек не
используется, сохранять/восстанавливать нечего. Почему бы и нет? - Nikolay_Po(25.02.2023 14:24)
- То, что работает, уже больше двадцати лет как работает. Вопрос есть
ли разумная замена goto, в таком контексте,
чтобы не ранить утонченные чувства юных дарований? - Cкpипaч(25.02.2023 15:09)- Состояния в функции оформить? - Nikolay_Po(25.02.2023 16:45)
- И как из состояния в состояние переходить? Указатель на функцию?
Как вариант. Нужно подумать. Спасибо :) - Cкpипaч(25.02.2023 18:08)
- Функция, разумеется, не должна иметь аргументов и ментять что-либо
не глобальное. Иначе есть риск переполнения стека. - Nikolay_Po(27.02.2023 13:33)
- Указатель на PT_THREAD :) Оставил как есть. Просто, надежно,
читабельно. Хоть и с goto. - Cкpипaч(28.02.2023 09:50)
- Не нужен указатель pt в виде аргумента. Нужно всего лишь... SciFi(107 знак., 28.02.2023 09:59)
- Указатель на PT_THREAD :) Оставил как есть. Просто, надежно,
читабельно. Хоть и с goto. - Cкpипaч(28.02.2023 09:50)
- Функция, разумеется, не должна иметь аргументов и ментять что-либо
не глобальное. Иначе есть риск переполнения стека. - Nikolay_Po(27.02.2023 13:33)
- И как из состояния в состояние переходить? Указатель на функцию?
Как вариант. Нужно подумать. Спасибо :) - Cкpипaч(25.02.2023 18:08)
- Состояния в функции оформить? - Nikolay_Po(25.02.2023 16:45)
- То, что работает, уже больше двадцати лет как работает. Вопрос есть
ли разумная замена goto, в таком контексте,
- Ну, так сработает наверняка лишь если код внутри состояния не
требует своего контекста, прямолинеен и работает только с
глобальными волатильными переменными. Тогда да - залетели в
обработчик, исполнили и отдали управление ОС. По идее, стек не
используется, сохранять/восстанавливать нечего. Почему бы и нет? - Nikolay_Po(25.02.2023 14:24)
- А если это не ошибки, а просто перед переходом в определенные
состояния нужна подготовка, и лучше чтобы это было только четко
одно место а не несколько абсолютно одинаковых фрагментов в разных
состояниях автомата? Cкpипaч(105 знак., 25.02.2023 11:01)
- Функция должна быть короткой, как тост, как выстрел, иначе времени
на отдых не останется. - Visitor(25.02.2023 11:04)
- Функция или подпрограмма должна укладываться в один экран - 25
строк, еще со времен
Очакова и покоренья КрымаDEC машин и терминала 15ИЭ-00-013 повелося. - Alex68(25.02.2023 15:22)- Ширина лошадиной задницы, помним. Cкpипaч(63 знак., 25.02.2023 15:37)
- ширина двух задниц равна бочке с кырасином и кыслородом. таки да. Alex68(97 знак., 25.02.2023 15:57)
- Сильнее всего ухудшает читабельность не goto, и не >25 строк
функции, а избыточные абстракции и выпендреж. Cкpипaч(79 знак., 25.02.2023 16:17)
- ранее писал на basic, и сам интертрепатор тоже сам писал. на разных
платформах. и паскале-подобный компилятор тоже писал. тогда это
было модно)) все писали, и я писал. ээээхххх.... - Alex68(25.02.2023 16:36)
- Вот вот, я проц дековский на ФПГА написал, а толку? Все богаче
стали? - Visitor(25.02.2023 18:35)
- Ляпота... Но сейчас уже не надь. Лежатъ вотъ 1801ВМ2, керамика, золото, дорохо-бохато. Зачемъ лежатъ? (пожал плечами) - Alex68(25.02.2023 20:12)
- Хех, кто-то фыркает на жажду наживы, а вот где её не хватало... - SciFi(25.02.2023 18:37)
- Ну, переписал, имея оригинальную документацию:-) А я с вами в МФТИ в 1984 г не встречался? - Visitor(25.02.2023 18:46)
- Вот вот, я проц дековский на ФПГА написал, а толку? Все богаче
стали? - Visitor(25.02.2023 18:35)
- ранее писал на basic, и сам интертрепатор тоже сам писал. на разных
платформах. и паскале-подобный компилятор тоже писал. тогда это
было модно)) все писали, и я писал. ээээхххх.... - Alex68(25.02.2023 16:36)
- Сильнее всего ухудшает читабельность не goto, и не >25 строк
функции, а избыточные абстракции и выпендреж. Cкpипaч(79 знак., 25.02.2023 16:17)
- ширина двух задниц равна бочке с кырасином и кыслородом. таки да. Alex68(97 знак., 25.02.2023 15:57)
- Ширина лошадиной задницы, помним. Cкpипaч(63 знак., 25.02.2023 15:37)
- Функция или подпрограмма должна укладываться в один экран - 25
строк, еще со времен
- Функция должна быть короткой, как тост, как выстрел, иначе времени
на отдых не останется. - Visitor(25.02.2023 11:04)
- Ага, многозадачку на проце только так и можно сделать, из прерываний в свитч только флаги завершения и результаты отсчетов АЦП. Никаких циклов кроме главного и единственного. А со свитчами не сразу дошло, что для каждого автомата задачи можно свой разбор сделать, в одном запутано выходит. - Visitor(25.02.2023 11:01)
- А так? Использованы protothreads(switch). Разнесен вход в состояние
(goto) и возврат из планировщика (PT_WAIT). Между меткой goto и
PT_WAIT - код, который выполняется один раз, при входе в состояние. Cкpипaч(49 знак., 25.02.2023 11:35)
- все это вкусовщина, мне больше нравится do-while(0) abivan(1 знак., 28.02.2023 14:20, картинка)
- Был один язык программирования где было всё. Звали его PL/1. Пишите на нём. :-) - Boвa(23.02.2023 04:03)
- На этом языке я писал лабораторную работу, первый курс. Квадратное уравнение. - Этo_Я(23.02.2023 05:05)
- Ужос - это так не любить труд "думать" - bnb62(480 знак., 22.02.2023 14:58 - 18:31)
- Эти конструкции эквивалентны =AlexD=(118 знак., 22.02.2023 15:19)
- А если ещё не побояться do{ }while(f); - VladislavS.(23.02.2023 07:35)
- Умник какой. Очень часто нужно проверяться в середине цикла, и тут похер что do, что while, да хоть for(;;). Причём проверка может быть не одна и с разными последствиями - break, continue, return, goto. Всё это можно порезать на куски ради структурированности, ну читаемость в результате будет на уровне write only. - =AlexD=(27.02.2023 13:06)
- Не надо обманывать и (ться). Ты в ассемблере бывал? - bnb62(22.02.2023 15:26 - 16:11)
- А ты? - =AlexD=(22.02.2023 15:36)
- :) С тёплым ламповым чувством воспоминаний :) - bnb62(22.02.2023 16:13)
- )) Оторвитесь Вы наконец от ASM-пуповины! Без тени сомнений...
возьмитесь за руки с "Си" (не путать с Си Цзиньпинем. Хотя...) и
ступайте в мир разноплатформенного кодинга. Алгаа...!)) Ну, или к
истокам припадите , к машинным кодам! SERGHIO(1 знак., 22.02.2023 18:20, картинка)
- - Кто сейчас сказал "разноплатформенного"? bnb62(134 знак., 22.02.2023 18:43)
- Так! Оформите свои соображения по "форме"! ) И доложите как
полагается! - SERGHIO(22.02.2023 18:54)
- - Есть! тварщ майор! :) =>-...Y bnb62(357 знак., 22.02.2023 20:07)
- Торжественно! Значимо! Скурпулёзно! SERGHIO(104 знак., 23.02.2023 17:31)
- - Есть! тварщ майор! :) =>-...Y bnb62(357 знак., 22.02.2023 20:07)
- Так! Оформите свои соображения по "форме"! ) И доложите как
полагается! - SERGHIO(22.02.2023 18:54)
- - Кто сейчас сказал "разноплатформенного"? bnb62(134 знак., 22.02.2023 18:43)
- )) Оторвитесь Вы наконец от ASM-пуповины! Без тени сомнений...
возьмитесь за руки с "Си" (не путать с Си Цзиньпинем. Хотя...) и
ступайте в мир разноплатформенного кодинга. Алгаа...!)) Ну, или к
истокам припадите , к машинным кодам! SERGHIO(1 знак., 22.02.2023 18:20, картинка)
- :) С тёплым ламповым чувством воспоминаний :) - bnb62(22.02.2023 16:13)
- А ты? - =AlexD=(22.02.2023 15:36)
- А если ещё не побояться do{ }while(f); - VladislavS.(23.02.2023 07:35)
- ну я тоже так частенько пишу. - Nikolay801_(22.02.2023 15:10)
- Эти конструкции эквивалентны =AlexD=(118 знак., 22.02.2023 15:19)
- в GCC есть lloyd(1 знак., 21.02.2023 10:10, ссылка)
- Или почему нет else к цилам for/while ? это когда цикл ни разу не
выполняется. нeдoкoдep(64 знак., 21.02.2023 07:44)
- Вы про что? Ну не выполняется цикл - и не выполняется. Или
предпринять действия в случае невыполнения? Переменную цикла
проверьте после выхода из него. - Dingo(22.02.2023 08:59)
- Вообще-то условие выполнения цикла может быть замысловатым, и его проверка может менять состояние системы, тогда результат проверки нужно сохранять в переменной. Но такое редко бывает, ради такого усложнять язык вредно, КМК. - SciFi(22.02.2023 09:06)
- В каком-нибудь пайтоне есть for/else. Много кто про него знает? А
использует? Чтобы что? И самое смешное, что там оно работает не
так, как ты описываешь. - mr-x(21.02.2023 08:25)
- смешное в том, что описываю как оно мне надо, а не как его
реализовали дегенераты. - плoxoйкoдep(21.02.2023 08:31,
)
- Сделали как хочется им, а не так, как хочется тебе. И ты негодуешь.
Действительно, смешно. Сделай сам! - mr-x(21.02.2023 11:13)
- изживе в себе РАБА! - нaxкoдep(21.02.2023 11:33,
)
- изживе в себе РАБА! - нaxкoдep(21.02.2023 11:33,
- Сделали как хочется им, а не так, как хочется тебе. И ты негодуешь.
Действительно, смешно. Сделай сам! - mr-x(21.02.2023 11:13)
- смешное в том, что описываю как оно мне надо, а не как его
реализовали дегенераты. - плoxoйкoдep(21.02.2023 08:31,
- Ничоси наезд на пророков Кернигана и Ричи. Я начинаю понимать,
почему мусульманам не нравится, когда наезжают на пророка
Мухаммеда. - SciFi(21.02.2023 07:56)
- Комитет по стандартизации езыга Цэ извратил светлое учение
пророков! На кол еретиков! Вернёмся к незамутненным истокам
K&R! Так победим! Выводите урок на майдан! - LightElf_(21.02.2023 10:26,
)
- Ах, господа! Не останавливайтесь, не останавливайтесь! Н. Вирт
прислал мне коробку попкорна. - Kpoк(22.02.2023 11:14)
- Так попкорн нужно было на майдане раздавать, а не самому его
есть... - Boвa(26.02.2023 10:15)
- Проёп! Не овладел заграничными технологиями. - Kpoк(27.02.2023 11:33)
- Так попкорн нужно было на майдане раздавать, а не самому его
есть... - Boвa(26.02.2023 10:15)
- Ах, господа! Не останавливайтесь, не останавливайтесь! Н. Вирт
прислал мне коробку попкорна. - Kpoк(22.02.2023 11:14)
- вот очевидный пример денеративизма этих коммитетчиков кoдepкoдep(827 знак., 21.02.2023 08:01,
, ссылка)
- Ахаха, погромизды с хабра хотят раздуть плюсовую спеку ещё на пару
тысяч страниц, это прекрасно. Не астанавливайтесь! :-) - SciFi(21.02.2023 08:07)
- это обсуждают в друйгой ветке. - плoxoйкoдep(21.02.2023 08:32,
)
- это обсуждают в друйгой ветке. - плoxoйкoдep(21.02.2023 08:32,
- Ахаха, погромизды с хабра хотят раздуть плюсовую спеку ещё на пару
тысяч страниц, это прекрасно. Не астанавливайтесь! :-) - SciFi(21.02.2023 08:07)
- Комитет по стандартизации езыга Цэ извратил светлое учение
пророков! На кол еретиков! Вернёмся к незамутненным истокам
K&R! Так победим! Выводите урок на майдан! - LightElf_(21.02.2023 10:26,
- Вы про что? Ну не выполняется цикл - и не выполняется. Или
предпринять действия в случае невыполнения? Переменную цикла
проверьте после выхода из него. - Dingo(22.02.2023 08:59)
- Зато есть вызов функции по указателю на указатель, типа **out(str);
Не помню, зачем нужно было, но мозг конкретно выносит:-) - Visitor(20.02.2023 18:19)
- Если самому - тайпдеф, потом указатель на него. - Dingo(21.02.2023 11:50)
- Gotoборцы запугали? А вы их не слушайте. - SciFi(20.02.2023 17:52)
- +1 М-да! Однако... страх иных перед САНКЦИОНИРОВАННЫМ применением Goto и внесённым во все "молитвенники" С перерос сам себя! - SERGHIO(21.02.2023 01:43)
- У всех есть, у нас нету. Абидна! - IBAH(20.02.2023 17:56)
- Ни разу не обидно. Если эту фигню туда протащить, ящик Пандоры
распахнётся, и тёплая ламповая сишечка сольётся туда же, куда
слились плюсы. - SciFi(20.02.2023 18:04)
- А вот я бы от вложенных функций не отказался бы. Не нужно
анонимных, простые именные функции объявленные внутри блоков кода. - =AlexD=(20.02.2023 18:06)
- гцц в помощь SciFi(1 знак., 20.02.2023 18:09, ссылка)
- А вот я бы от вложенных функций не отказался бы. Не нужно
анонимных, простые именные функции объявленные внутри блоков кода. - =AlexD=(20.02.2023 18:06)
- Ни разу не обидно. Если эту фигню туда протащить, ящик Пандоры
распахнётся, и тёплая ламповая сишечка сольётся туда же, куда
слились плюсы. - SciFi(20.02.2023 18:04)
- Не ипи моск =AlexD=(153 знак., 20.02.2023 17:50)
- Неспортивно - IBAH(20.02.2023 17:57)
- Вероятно это можно обернуть в макросы и сделать вид что всё по
правилам, но зачем? - =AlexD=(20.02.2023 18:02)
- Си очень прост и максимально приближен к нативным языкам
(ассемблерам). Я ни разу не встречал какой-нибудь процессор,
который бы не имел команды "JMP" (Goto). Потому не вижу смысла
брезговать использованием Goto ради следования каким-то
предрассудкам (типа "ухудшения читабельности программы", "не
получения удовольствия от созерцания кода", и прочим проявлениям
человеческой ограниченности и беспомощности :)). - vpv.vpv(21.02.2023 08:40)
- Мы можем как угодно относиться к Goto но он всем погромистским
сообществом назначен Вселенским Злом и предан Анафеме. То что
инструментом нужно пользоваться с умом никого не колышет. - 3m(22.02.2023 12:59)
- Д. Кнут с этим вашим сообществом не согласен. ЫЫyкпy(72 знак., 22.02.2023 18:29)
- А это всё от того, что многоуважаемому маэстро Кнуту никогда не
приходилось ковыряться в индусском коде, в котором свитч на 6 тысяч
строк и в этом свитче повсюду goto из середины одного кейса в
середину второго. Назад-вперёд-во-все-стороны. Он бы, может и
подумал ещё разок. - xarcas(28.02.2023 08:38)
- Дык это решается не запретом goto, а наличием надсмотрщика с
тяжёлой палкой :-) - SciFi(28.02.2023 08:43)
- В политкорректном обществе это принято называть "код-ревью". А
вообще, как это раньше в автобусах писали "совесть пассажира -
лучший контролёр" - xarcas(28.02.2023 21:07)
- в другой последовательности. - Kpoк(01.03.2023 08:57)
- Да лана. xarcas(1 знак., 01.03.2023 09:50, картинка)
- ага. значит, другой город. - Kpoк(01.03.2023 09:57)
- В наше время верить нельзя никому. Может, это агенты госдепа дезинформацию нарисовали? - SciFi(01.03.2023 10:02)
- ага. значит, другой город. - Kpoк(01.03.2023 09:57)
- Да лана. xarcas(1 знак., 01.03.2023 09:50, картинка)
- в другой последовательности. - Kpoк(01.03.2023 08:57)
- В политкорректном обществе это принято называть "код-ревью". А
вообще, как это раньше в автобусах писали "совесть пассажира -
лучший контролёр" - xarcas(28.02.2023 21:07)
- Дык это решается не запретом goto, а наличием надсмотрщика с
тяжёлой палкой :-) - SciFi(28.02.2023 08:43)
- Сразу вспомнилось: "Запомните, что я вам скажу: один стакан Tyмблep(1059 знак., 22.02.2023 23:58)
- Изобретатели Си были, в первую очередь, практиками. И язык они
создавали для решения вполне определённых задач - написания
операционной системы и другого подобного низкоуровневого кода. И
потому стремились реализовывать конструкции, понятным образом
отображающиеся на возможности железа того времени. Отсюда и куча
всяких странностей, типа *i++ (прямая калька с автоинкрементной
адресации в PDP) и переменные класса register и отсутствие в языке
операторов ввода-вывода. Но когда LightElf(364 знак., 09.03.2023 00:33)
- таки ведь именно для PDP они и писали новый язык. учиттываая именно
PDP'шные особенности архитектуры. - Alex68(09.03.2023 23:12)
- Ну не только PDP, иначе бы в языке не было UB по знаковому переполнению, например. Оно ведь откуда? Оно от того, что в те далёкие времена существовали компутеры, использовавшие для отрицательных чисел не дополнительный, а обратный код. А ещё, вроде, были архитектуры с насыщением. Соответственно получалось, что если к 32767 прибавить 1, то на одних компах получится -32768, на других -0, а на третьих 32767. И без проверки в рантайме отловить такое никак, а втыкать в ядре ОС LightElf(297 знак., 14.03.2023 02:03)
- таки ведь именно для PDP они и писали новый язык. учиттываая именно
PDP'шные особенности архитектуры. - Alex68(09.03.2023 23:12)
- goto это результат слабых возможностей break а также отсутствие в языке механизмов выхода сразу из множественных вложений. А оно иногда очень нужно. - 3m(28.02.2023 12:40)
- Изобретатели Си были, в первую очередь, практиками. И язык они
создавали для решения вполне определённых задач - написания
операционной системы и другого подобного низкоуровневого кода. И
потому стремились реализовывать конструкции, понятным образом
отображающиеся на возможности железа того времени. Отсюда и куча
всяких странностей, типа *i++ (прямая калька с автоинкрементной
адресации в PDP) и переменные класса register и отсутствие в языке
операторов ввода-вывода. Но когда LightElf(364 знак., 09.03.2023 00:33)
- Всего "ума" с goto - ходить вперед и не заходить внутрь блока. И только-то. - POV(22.02.2023 18:34)
- А это всё от того, что многоуважаемому маэстро Кнуту никогда не
приходилось ковыряться в индусском коде, в котором свитч на 6 тысяч
строк и в этом свитче повсюду goto из середины одного кейса в
середину второго. Назад-вперёд-во-все-стороны. Он бы, может и
подумал ещё разок. - xarcas(28.02.2023 08:38)
- Если в суждениях встречается слова "всё", "все", "никто", "всегда",
"никогда", значит это суждение неправильное. лoгикaнayкa(1 знак., 22.02.2023 13:03, ссылка)
- Это основное правило гуманитария. Программирование - "это другое". - Tyмблep(23.02.2023 00:04)
- Д. Кнут с этим вашим сообществом не согласен. ЫЫyкпy(72 знак., 22.02.2023 18:29)
- А я ни разу не встречал алгоритма, требующего гоуты. - VladislavS.(22.02.2023 07:25)
- Напишите какой-нибудь бутлоадер (bootloader), и вам гоуто 0 не
избежать. :)) (Про ((void(*)(void)) 0)(); я в курсе, это то же
самое) - vpv.vpv(28.02.2023 06:54)
- но есть нюанс. В Вашем варианте будет call вместо jmp и в случае
бутлодера еще до перехода на надо бы поправить указатель стека(это
на сях не сделать) а то стартап код живущий на 0 может быть написан
в расчете на хардресет где указатель стека аппаратно
инициализируется. - Nikolay801_(28.02.2023 10:18)
- Разумеется, стартап-код пишется и компилируется для адреса 0, и
первое, что этот код делает - настраивает (заново!) стек и пр. Так
что состояние стека "в предыдущей жизни", в секции бутлоадера, уже
не играет никакой роли. А вот периферия - тут другое дело. Поэтому
в бутлоадерах перед переходом в аппликейшЫн, я использую аппаратный
вачдог ресет, чтобы проц полностью весь обнулился. - vpv.vpv(01.03.2023 07:47)
- стартап код из stdlib stm32 который почти ни кто не трогает. Nikolay801_(95 знак., 02.03.2023 10:23)
- Элементарно, Ватсон. Стек трогает таблица векторов прерываний, и
это тоже часть стартапа. - SciFi(02.03.2023 10:25)
- при хард ресете трогает, при жамп/колл на 0 таблица невозмутимо
лежит в сторонке. - Nikolay801_(02.03.2023 10:55)
- Виноват, влез, не глянув на контекст. Так-то да, обычно настраивают стек и прыгают. Причём я не устаю рекламировать свой способ прыжка (см. ниже). Но и без настройки стека можно. Просто убедиться, что стартап его настроит, и тогда нет проблем. Но такой вариант реже встречается, КМК. SciFi(201 знак., 02.03.2023 11:16)
- при хард ресете трогает, при жамп/колл на 0 таблица невозмутимо
лежит в сторонке. - Nikolay801_(02.03.2023 10:55)
- Элементарно, Ватсон. Стек трогает таблица векторов прерываний, и
это тоже часть стартапа. - SciFi(02.03.2023 10:25)
- стартап код из stdlib stm32 который почти ни кто не трогает. Nikolay801_(95 знак., 02.03.2023 10:23)
- Разумеется, стартап-код пишется и компилируется для адреса 0, и
первое, что этот код делает - настраивает (заново!) стек и пр. Так
что состояние стека "в предыдущей жизни", в секции бутлоадера, уже
не играет никакой роли. А вот периферия - тут другое дело. Поэтому
в бутлоадерах перед переходом в аппликейшЫн, я использую аппаратный
вачдог ресет, чтобы проц полностью весь обнулился. - vpv.vpv(01.03.2023 07:47)
- ресетнуть вотчдогом - Oman(28.02.2023 07:07)
- у кортексов, которые нынче везде, есть SYSRESETREQ Nikolay801_(1 знак., 28.02.2023 10:22, картинка)
- У AVR есть регистр MCUSR, в котором флажки указывают на то, как
закончилась предыдущая жизнь. Можно сделать выводы. :)) - vpv.vpv(01.03.2023 07:56)
- В msp430g пользую сброс при исполнении инструкции по запрещенному адресу. - Гyдвин(01.03.2023 08:04)
- ага, сам через него делаю, просто забыл) - Oman(28.02.2023 10:36)
- У AVR есть регистр MCUSR, в котором флажки указывают на то, как
закончилась предыдущая жизнь. Можно сделать выводы. :)) - vpv.vpv(01.03.2023 07:56)
- у кортексов, которые нынче везде, есть SYSRESETREQ Nikolay801_(1 знак., 28.02.2023 10:22, картинка)
- но есть нюанс. В Вашем варианте будет call вместо jmp и в случае
бутлодера еще до перехода на надо бы поправить указатель стека(это
на сях не сделать) а то стартап код живущий на 0 может быть написан
в расчете на хардресет где указатель стека аппаратно
инициализируется. - Nikolay801_(28.02.2023 10:18)
- выскочить из двух и более циклов - IBAH(22.02.2023 12:58)
- А можно припер алгоритма, где нужно экстренно десантироваться из
вложенных циклов? - VladislavS.(23.02.2023 07:53)
- Фатальная ошибка датчика или исполнительного устройства после которой продолжение работы вложенных циклов не просто невозможна но и вредна. - 3m(28.02.2023 12:42)
- Управление приточно-вытяжной вентсистемой, без рекуператора -
пойдет? %) - Cкpипaч(23.02.2023 09:49)
- Идеальный претендент на шаблонный класс "приточно-вытяжная система"
с параметром "наличие рекуператора". Без всякой гоуты. - VladislavS.(23.02.2023 11:28)
- Угу. Только алгоритм управления - упрощенный. Cкpипaч(433 знак., 23.02.2023 11:53)
- Так вся прелесть объекта, что в месте вызова его интерфейса пофиг
упрощённый он или нет. Надо включить - дёрнули метод On(), надо
считать телеметрию ReadTM(). Всё через интерфейс. А реализацию
делайте хоть упрощённую сферическую в вакууме. - VladislavS.(23.02.2023 12:05)
- "Телеметрию" и абстрактный-"On" мне не надо. Я через базу делаю.
Шаблон - "класс-бог". - Cкpипaч(23.02.2023 14:11)
- Прямо в базу без интерфейса? Ну, тут мои полномочия уже всё. Гоутухайтес, если нравится. - VladislavS.(23.02.2023 14:14)
- Дерните пожалуйста vlv1.preheat_in_necessary_or_standart_regulation_if_not_or_ended(), реализованное как указатель на виртуальный метод. - Cкpипaч(23.02.2023 14:09)
- ...до тех пор, пока он целостная сущность. Как только он просто
попытка нелокального перехода - очередной "спагетти-код". - Cкpипaч(23.02.2023 14:00)
- Если это ваш код, то и винить в написании г@кода надо себя, если
чужой, то соболезную. - VladislavS.(23.02.2023 14:11)
- Слив защитан. - Cкpипaч(23.02.2023 14:13)
- Вообще, это не я жалуюсь как трудно вам там программируется. :))) - VladislavS.(23.02.2023 14:17)
- Слив защитан. - Cкpипaч(23.02.2023 14:13)
- Если это ваш код, то и винить в написании г@кода надо себя, если
чужой, то соболезную. - VladislavS.(23.02.2023 14:11)
- "Телеметрию" и абстрактный-"On" мне не надо. Я через базу делаю.
Шаблон - "класс-бог". - Cкpипaч(23.02.2023 14:11)
- Так вся прелесть объекта, что в месте вызова его интерфейса пофиг
упрощённый он или нет. Надо включить - дёрнули метод On(), надо
считать телеметрию ReadTM(). Всё через интерфейс. А реализацию
делайте хоть упрощённую сферическую в вакууме. - VladislavS.(23.02.2023 12:05)
- Угу. Только алгоритм управления - упрощенный. Cкpипaч(433 знак., 23.02.2023 11:53)
- Идеальный претендент на шаблонный класс "приточно-вытяжная система"
с параметром "наличие рекуператора". Без всякой гоуты. - VladislavS.(23.02.2023 11:28)
- Обход 2+ мерных массивов с целью поиска элемента. - AlexBi(23.02.2023 08:06)
- А можно припер алгоритма, где нужно экстренно десантироваться из
вложенных циклов? - VladislavS.(23.02.2023 07:53)
- Почему именно "алгоритма"?... POV(282 знак., 22.02.2023 12:48, картинка, картинка)
- 1. Макросы - зло! 2. Код сильно читабельней так if(!i2cSoft_WaitAck()) { i2cSoft_Stop(); return ERROR; } 3.Вопросы оптимизации оставьте компилятору, он это сделает лучше. - VladislavS.(22.02.2023 17:52)
- я бы переименовал EXEC в CHECK или подобное. - лoгикaнayкa(22.02.2023 13:06)
- Ну типа как "запуск" того что передается в параметр макроса. У меня
это в десятке проектов, поздно менять привычки )) - POV(22.02.2023 13:10)
- Я бы не рискнул из контекста (из фигурных скобок, пусть из switch)
выходить через goto. Вы LTO пробовали включать при компиляции?
Обычно, такое сразу вылезает боком, если оптимизировать
по-максимуму. - Nikolay_Po(22.02.2023 14:14)
- Выход не проблема, проблемой может быть гото внутрь скобок. Однако switch-case с этим (входом внутрь скобок) как-то разбирается. - AlexBi(22.02.2023 15:36)
- С чего бы оно вылезало боком? Это ж не фантазия прогера, это
штатная задача компилятора. У меня были случаи, что не собиралось
если не там объявлены переменные. Но и только-то. - POV(22.02.2023 14:18)
- Пока останусть при своём. Скобки для компилятора могут означать, в
том числе, сохранение регистров при входе и восстановление при
выходе, если внутри делается что-то большое и сложное, на что не
хватает свободных регистров процессора. Уследит ли за этим
компилятор в случае goto? По идее, должнен. Но лучше перебдеть, чем
недобдеть. - Nikolay_Po(22.02.2023 14:25)
- Следить за областью видимости - основная задача компилятора, тут не нужно предположений, это базовый функционал. - =AlexD=(22.02.2023 14:42)
- Пока останусть при своём. Скобки для компилятора могут означать, в
том числе, сохранение регистров при входе и восстановление при
выходе, если внутри делается что-то большое и сложное, на что не
хватает свободных регистров процессора. Уследит ли за этим
компилятор в случае goto? По идее, должнен. Но лучше перебдеть, чем
недобдеть. - Nikolay_Po(22.02.2023 14:25)
- Я бы не рискнул из контекста (из фигурных скобок, пусть из switch)
выходить через goto. Вы LTO пробовали включать при компиляции?
Обычно, такое сразу вылезает боком, если оптимизировать
по-максимуму. - Nikolay_Po(22.02.2023 14:14)
- Ну типа как "запуск" того что передается в параметр макроса. У меня
это в десятке проектов, поздно менять привычки )) - POV(22.02.2023 13:10)
- А мог встретить? Хотя бы теоретически. - mr-x(22.02.2023 10:46)
- У вас для этого ексцепшин, ясен пень, и вы им пользуетесь очень
активно, я бы даже сказал чрезмерно активно. =AlexD=(376 знак., 22.02.2023 08:52)
- Конструкторы ещё ошибку возвращать не могут (а эксепшены кидать - легко) - а это куда важней операторов и всяко чаще бывает нужно. Ну и на множестве платформ эксепшны тупо запрещено юзать - даже сейчас. Раньше еще и компиляторы (или рантайм) их тупо не поддерживали кое-где. То есть было даже собрать бинарь невозможно. - xarcas(28.02.2023 08:35)
- гоута требуется не для простейших алгоритмов, а больше для
читабельности кода, поройся grep в ядре линуха. - гoyтaкoдep(22.02.2023 07:29,
)
- Напишите какой-нибудь бутлоадер (bootloader), и вам гоуто 0 не
избежать. :)) (Про ((void(*)(void)) 0)(); я в курсе, это то же
самое) - vpv.vpv(28.02.2023 06:54)
- Мы можем как угодно относиться к Goto но он всем погромистским
сообществом назначен Вселенским Злом и предан Анафеме. То что
инструментом нужно пользоваться с умом никого не колышет. - 3m(22.02.2023 12:59)
- Си очень прост и максимально приближен к нативным языкам
(ассемблерам). Я ни разу не встречал какой-нибудь процессор,
который бы не имел команды "JMP" (Goto). Потому не вижу смысла
брезговать использованием Goto ради следования каким-то
предрассудкам (типа "ухудшения читабельности программы", "не
получения удовольствия от созерцания кода", и прочим проявлениям
человеческой ограниченности и беспомощности :)). - vpv.vpv(21.02.2023 08:40)
- Вероятно это можно обернуть в макросы и сделать вид что всё по
правилам, но зачем? - =AlexD=(20.02.2023 18:02)
- Неспортивно - IBAH(20.02.2023 17:57)
- Свежего в ленту "О вреде GOTO-фобии (с примерами на С)." fk0 с
большими комментариями - прилагается. Toчкa oпopы(1 знак., 05.03.2023 12:45, ссылка)