AB>>> А то, что ты там с foo() сделал, это правильно ? DO>> да :) DO>> куча функций работает со статическими переменными внутри DO>> и это нормально :) AB>
AB> Мы говорим о функции, выполнение которой прерывается и вывызывается снова, AB> причем не рекурсивно, а совершенно асинхронно, например посередине AB> команды обрабатывающей двухбайтовую статическую переменную. И что с AB> этой переменной будет после этого ? я не приводил пример такой функции :) место применения я рассказал, читай внимательно
DO>>>> придерживаясь правила о том, что средняя глубина вложений DO>>>> вызовов в одном можуле должна быть 2-3 AB>>> Это еще почему ? DO>> это потому что бы другому человеку или тебе самому через DO>> продолжительный промежуток времени было легко разгребать написанное. AB>
AB> Разгребать простую рекурсию не просто, а то как ты предлагаешь AB> писать вообще глухо. Это даже не плохой стиль, это прям не AB> чистоплотность. :-) еще раз: о конкретном применении рассказано, оно довольно распространено :)
DO>> если в модуле требуются ветвления 3-4 степени, очевидно просто пора DO>> ввести еще один модуль. хеловорды тут не при чем AB> Во-во, напиши две копии этой функции и вызывай на здоровье одну из AB> основного кода, другую из прерывания. а потом правь их обе когда понадобится внести измененния? нет уж, спасибо данный совет еще хуже глубогого ветвления :-\
AB> А если уж такого изврата хочешь, AB> пиши прагму. И о стандарте (как ты сказал) тут речь не идет, поэтому AB> про переносимость на другой компилятор не надо. Что он накомпилит, AB> не известно тоже. вот я выше написал RS, его вполне можно перенести на любую другую архитектуру/компилятор :) причем достаточно чтобы компилятор поддерживал стандарты.
(битовая структура с неименованными полями накладывает конечно ограничение на остро/тупоконечность, но ее я сознательно туда ввел - интересно было сколько сейчас компиляторов уже ее поддерживает).
AB>>> А он, как известно не зависит от МК или языка. Или для асма тоже AB>>> 2-3 уровня вложности ? DO>> имено так! AB> Т.е. вложные прерывания в 18 пиках - это уже плохой стиль ? вложенные прерывания и вложенные вызовы - разные вещи
DO>> макросы за уровень вложенности не считаем ;) AB> Понятно, более 2-3 уровней вложности в макросах - плохой стиль написания AB> макросов. Эх нету GS, он специалист по макросам, объяснил бы тебе. :-) я имел ввиду вызовы макросов в программе. макросы тоже более 2-3 уровней вложенности тоже разумеется просятся попасть в разные хидеры :)
или же просится сюда применение препроцессора зависит от ситуации
AB>>> Hу приведи, хоть то что тебе древний компилятор накомпилил, AB>>> посмотрим. DO>> надо будет подумать поставить чтоли эмулятор dos, чтобы DO>> его запустить? хм AB>
AB> Hайду, GCC под атмел версии 0.0.0.00.1b , скомпилю что-нить и буду AB> говорить, какие у него (а за одно и у всего GCC и атмела) глюки AB> жуткие. так мне пока никто листинга не привел скомпилированного выше теста на современном ht-pic. вот я и опираюсь на то что знаю :)
DO>>>> а с какого фига не компилируется вышеприведенный пример? AB>>> А кто тебе сказал, что он не компилиться ? DO>> сходил поглядел, в версии 7.85 еще не компилился AB> Hадо говорить - "уже" не компилит, т.к. это правильно. и это плохо. должен компилировать
DO>> сейчас что-то изменилось? я собственно об этом и спросил AB> Hадеешся на ухудшение качества продукта ? :-) надеюсь на улучшение, но видимо надежды напрасные :(