C для AVR -- пишем аккуратно.
Re: C для AVR -- пишем аккуратно.
Сам трепло... ))))))))
Теперь подумай... для кого ты всё это писал и для чего??? )))))))))
Знающим по барабану твои мозговые извращения, а новичкам они как мёртвому припарка... они в двух буквах запутаются... )))))))
Дальше... чего добиться хотел то... уменьшения кода??? Ускорения работы??? Хотел показать, что компилерописатели лохи??? Смешно!!!
В каждом случае все будет индивидуально... универсальных "примочек" быть не может... и то, что может быть оптимальным в одном случае, в другом станет фикцией или глюком... только не каждому под силу потом в этом разобраться, к сожалению... Примеров море... с указателями - океан...
Убивать свой мозг ради того. чтобы приблизиться к АСМу по размеру кода??? А многие смогут написать тоже самое на АСМе??? С чем они то сравнивать будут???
Цеплять причуды с граблями ради ускорения кода??? Оно стоит того??? Чтобы в конце концов упереться в предел возможности камня, вместо освоения новой архитектуры???
GCC... Да порой он просто поражает своими вывихами (вот щас АСМисты возликуют!!!)... вроде и пишешь короткий и понятный код, а в результате оптимизации получаешь ........... ...
Начинаешь ему "абиснять"... благо знаю как уговорить...
Знаю о всём не понаслышке... самого иногда подмывает "замутить" и "удивить самого себя"... забывая золотое правило... "Не мешай компилятору!"...
Теперь подумай... для кого ты всё это писал и для чего??? )))))))))
Знающим по барабану твои мозговые извращения, а новичкам они как мёртвому припарка... они в двух буквах запутаются... )))))))
Дальше... чего добиться хотел то... уменьшения кода??? Ускорения работы??? Хотел показать, что компилерописатели лохи??? Смешно!!!
В каждом случае все будет индивидуально... универсальных "примочек" быть не может... и то, что может быть оптимальным в одном случае, в другом станет фикцией или глюком... только не каждому под силу потом в этом разобраться, к сожалению... Примеров море... с указателями - океан...
Убивать свой мозг ради того. чтобы приблизиться к АСМу по размеру кода??? А многие смогут написать тоже самое на АСМе??? С чем они то сравнивать будут???
Цеплять причуды с граблями ради ускорения кода??? Оно стоит того??? Чтобы в конце концов упереться в предел возможности камня, вместо освоения новой архитектуры???
GCC... Да порой он просто поражает своими вывихами (вот щас АСМисты возликуют!!!)... вроде и пишешь короткий и понятный код, а в результате оптимизации получаешь ........... ...
Начинаешь ему "абиснять"... благо знаю как уговорить...
Знаю о всём не понаслышке... самого иногда подмывает "замутить" и "удивить самого себя"... забывая золотое правило... "Не мешай компилятору!"...
"Я не даю готовых решений, я заставляю думать!"(С)
- Axon
- Нашел транзистор. Понюхал.
- Сообщения: 152
- Зарегистрирован: Вс дек 23, 2007 20:16:58
- Откуда: Днепропетровск
- Контактная информация:
Re: C для AVR -- пишем аккуратно.
HHIMERA, +1
Re: C для AVR -- пишем аккуратно.
avreal, не обращай внимания, мало ли на пути встречается людей с деструктивным мышлением.....
- ibiza11
- Поставщик валерьянки для Кота
- Сообщения: 1900
- Зарегистрирован: Сб фев 21, 2009 13:11:40
- Откуда: Москва
Re: C для AVR -- пишем аккуратно.
я считаю, что avreal получил хороший опыт, разобрался что к чему, нашел для себя что-то новое и решил поделиться результатами с теми, кому возможно будет интересно посмотреть.
согласен, что для некоторых разработчиков трата времени на подобные оптимизации не окупает себя в итоге. быстрее написать кроссплатформенный, интуитивно понятный код, в котором по прошествии времени не нужно будет разбираться и вникать : "чё???... куда???... на ну нах@й!!!...."
В общем, хочу сказать, что нет смысла спорить, нужно это кому то или нет! Главное автор из этого вынес выгоду. Низкий поклон усидчивости и щепетильности, avreal!
согласен, что для некоторых разработчиков трата времени на подобные оптимизации не окупает себя в итоге. быстрее написать кроссплатформенный, интуитивно понятный код, в котором по прошествии времени не нужно будет разбираться и вникать : "чё???... куда???... на ну нах@й!!!...."
В общем, хочу сказать, что нет смысла спорить, нужно это кому то или нет! Главное автор из этого вынес выгоду. Низкий поклон усидчивости и щепетильности, avreal!

Ставим плюсы: )
Re: C для AVR -- пишем аккуратно.
для кого ты всё это писал и для чего??? )))))))))
Знающим по барабану твои мозговые извращения, а новичкам они как мёртвому припарка...
Конкретно для меня, например.
Я уже далеко не новичок, но пока и не гуру-мастер. Так что в самый раз. Я вынес несколько интересных идей, за что большое спасибо тов. avreal.
Если для чьего-то мозга сия пища тверда зело, это не значит, что принципиально нет людей, которые способны понять и оценить предлагаемое.
А вообще, толсто.
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Re: C для AVR -- пишем аккуратно.
Если у компилера напрочь отобрать всё... возникает вопрос... а зачем тогда компилер вообще нужен???
Проще на АСМе было написать... сэкономив время и серое вещество...
Проще на АСМе было написать... сэкономив время и серое вещество...
"Я не даю готовых решений, я заставляю думать!"(С)
-
crocodil
Re: C для AVR -- пишем аккуратно.
HHIMERA писал(а):Дальше... чего добиться хотел то... уменьшения кода??? Ускорения работы??? Хотел показать, что компилерописатели лохи??? Смешно!!!
Компилеры писали не лохи, но и не боги, а такие же люди как и ты.
А как известно, людям свойственно ошибаться.
Re: C для AVR -- пишем аккуратно.
Только не надо путать ошибки (они, как правило, все расписаны) и стратегию разработчиков компиляторов...
Это разные вещи... Сравните генерируемый код нескольких компиляторов различных брэндов и поймёте о чем речь...
Но на первом месте всегда, у всех, будет устойчивость и преемственность...
Это разные вещи... Сравните генерируемый код нескольких компиляторов различных брэндов и поймёте о чем речь...
Но на первом месте всегда, у всех, будет устойчивость и преемственность...
"Я не даю готовых решений, я заставляю думать!"(С)
- avreal
- Опытный кот
- Сообщения: 842
- Зарегистрирован: Чт дек 31, 2009 19:27:45
- Откуда: Бровари, Україна
- Контактная информация:
Re: C для AVR -- пишем аккуратно.
Так а там основные скоращения (с 870 до 670 байт) все в рамках кроссплатформенного кода. Насколько можно говорить о кросплатформенности в коде такого размера, завязанного на конкретный микроконтроллер и компилятор (работа с EEPROM).ibiza11 писал(а):быстрее написать кроссплатформенный, интуитивно понятный код
А по поводу интуитивной понятности — так это вопрос вообще по сути вкусовой, зависящий от человека, его предистории (предыдущего опыта).
Автор из этого потерял какое-то количество времени и всё.ibiza11 писал(а):Главное автор из этого вынес выгоду.
Просто проходил мимо, увидел сообщение, подумал «не может быть, что разница аж в два раза на задаче такого типа».
Глянул исходник, подумал «ну так ведь не так писать надо!».
Потом просто проверил, насколько прав.
А почти весь нужный опыт был получен ещё на «до-ANSI-шном C». В котором нужно было писать:
Код: Выделить всё
foo (a,b)
int a;
int b;
{
return a+b;
}Лень в виде мании величия: «ты гений, зачем стараться?». В виде комплекса: «всё равно не выйдет, зачем упираться?». Как логика: «если достаточно, зачем знать и уметь больше?». Цель одна: остановить. Не любит тепло работающих мышц и шум работающего мозга.
- ibiza11
- Поставщик валерьянки для Кота
- Сообщения: 1900
- Зарегистрирован: Сб фев 21, 2009 13:11:40
- Откуда: Москва
Re: C для AVR -- пишем аккуратно.
avreal писал(а):Автор из этого потерял какое-то количество времени и всё.
Ну Вам виднее, тогда вынужден согласиться с HHIMERA, что время Вы потратили зря.

Ставим плюсы: )
- avreal
- Опытный кот
- Сообщения: 842
- Зарегистрирован: Чт дек 31, 2009 19:27:45
- Откуда: Бровари, Україна
- Контактная информация:
Re: C для AVR -- пишем аккуратно.
Ну так это с Вашей точки зрения. У меня сложилось мнение, что не все так считают.
Возможно, я ошибаюсь и действительно и тут и в других «С-объясняющих» своих постах потратил его зря «абсолютно», а не только с Вашей, HHIMERA, … точки зрения.
В таком случае, опять уже с моей точки зрения, это всё очень печально. И отнюдь не потому, что у меня пропало сколько-то там часов.
Возможно, я ошибаюсь и действительно и тут и в других «С-объясняющих» своих постах потратил его зря «абсолютно», а не только с Вашей, HHIMERA, … точки зрения.
В таком случае, опять уже с моей точки зрения, это всё очень печально. И отнюдь не потому, что у меня пропало сколько-то там часов.
Лень в виде мании величия: «ты гений, зачем стараться?». В виде комплекса: «всё равно не выйдет, зачем упираться?». Как логика: «если достаточно, зачем знать и уметь больше?». Цель одна: остановить. Не любит тепло работающих мышц и шум работающего мозга.
Re: C для AVR -- пишем аккуратно.
Печально то, что вы изначально выбрали неудачный пример... на таком камне компилятору просто негде себя реализовать... и вы должны были об этом знать...
Дальше... На таком маленьком объёме кода вы взяли всё управление на себя... полностью... стоило оно того или нет - в разных случаях по разному... кого-то спасёт, у кого-то просто отнимет время... результат достигнут не будет...
Дальше... Вы взялись рулить регистрами вручную, но не акцентировали, что не всеми регистрами можно рулить свободно... хэлпы, к сожалению, не все читают...
Дальше... Игры с регистрами в двух случаях закончились плачевно, что и неудивительно, но вас, почему-то, это не насторожило...
А то, что вы потратили время и затронули эту тему... Время потрачено не зря, подобные темы возникают периодически... а опыта, без потери времени, не наживёшь...
Дальше... На таком маленьком объёме кода вы взяли всё управление на себя... полностью... стоило оно того или нет - в разных случаях по разному... кого-то спасёт, у кого-то просто отнимет время... результат достигнут не будет...
Дальше... Вы взялись рулить регистрами вручную, но не акцентировали, что не всеми регистрами можно рулить свободно... хэлпы, к сожалению, не все читают...
Дальше... Игры с регистрами в двух случаях закончились плачевно, что и неудивительно, но вас, почему-то, это не насторожило...
А то, что вы потратили время и затронули эту тему... Время потрачено не зря, подобные темы возникают периодически... а опыта, без потери времени, не наживёшь...
"Я не даю готовых решений, я заставляю думать!"(С)
- ibiza11
- Поставщик валерьянки для Кота
- Сообщения: 1900
- Зарегистрирован: Сб фев 21, 2009 13:11:40
- Откуда: Москва
Re: C для AVR -- пишем аккуратно.
Вы ошибаетесь, это как раз с Вашей точки зрения, потому что я Вас и процитировал и из этого сделал вывод. Странно, что Вы сначала пишете, что только время потратили не получив ценного опыта, а потом говорите, что это моя точка зрения.avreal писал(а):Ну так это с Вашей точки зрения.
моя точка зрения написана чуть выше
Ставим плюсы: )
Re: C для AVR -- пишем аккуратно.
Может хватит переливать из пустого в порожнее.....
Мне например (думаю я не один такой), интересно познавать тонкости написания программ, (хотя это конечно не означает что я сразу начну писать так, как предлагает ТС, зато я приобретаю опыт, который никогда не помешает).
Если кому то, так, не охота писать, так приведите конкретные примеры, почему так писать не надо, если нет конкретных примеров (аргументы типа: будет то.... будет се.... веса никакого не представляют), ну так и не надо развозить грязь, болтунов итак хватает.
ibiza11 вы тоже уже определитесь пожалста, интересно вам тут или нет, ато, от вашего метания из стороны в сторону, смешно както.....
Мне например (думаю я не один такой), интересно познавать тонкости написания программ, (хотя это конечно не означает что я сразу начну писать так, как предлагает ТС, зато я приобретаю опыт, который никогда не помешает).
Если кому то, так, не охота писать, так приведите конкретные примеры, почему так писать не надо, если нет конкретных примеров (аргументы типа: будет то.... будет се.... веса никакого не представляют), ну так и не надо развозить грязь, болтунов итак хватает.
Какая разница какой камень.... Подвернулся случай, на нем и объясняют..... Зато передается опыт, а не сотрясается воздух от пустых звуков......HHIMERA писал(а):Печально то, что вы изначально выбрали неудачный пример... на таком камне компилятору просто негде себя реализовать... и вы должны были об этом знать...
Зато можно поучится, как управлять мощными ресурсами, а не просто тупо молится на интеллект компилятора. А то что время отняло, дык можно подумать что у вас каждый час тышшу приносит, и прям вы время не тратите на какие нибудь пустые дела.HHIMERA писал(а):Дальше... На таком маленьком объёме кода вы взяли всё управление на себя... полностью... стоило оно того или нет - в разных случаях по разному... кого-то спасёт, у кого-то просто отнимет время... результат достигнут не будет...
Ну дак укажите на это, вежливо, дав конкретную информацию, хоть какаято польза от вас будет в этой ветке..... А хаить всех - проще простого, много ума не надо.....HHIMERA писал(а):Дальше... Вы взялись рулить регистрами вручную, но не акцентировали, что не всеми регистрами можно рулить свободно... хэлпы, к сожалению, не все читают...
Ну дак укажите на это, вежливо, дав конкретную информацию, хоть какаято польза от вас будет в этой ветке..... Я например как раз собирался, для определенных целей, научится резервировать регистры при программировании на С, (зачем мне это надо, не собираюсь вам объяснять, потому что все равно конструктивной помощи от вас не дождешся, только обгадите с ног до головы) дак вот, если вам это не нужно, то не мешайте тем кому это интересно.....HHIMERA писал(а):Дальше... Игры с регистрами в двух случаях закончились плачевно, что и неудивительно, но вас, почему-то, это не насторожило...
Вот здесь я не понял..... неужели вы никого не ругаете, и говорите в положительном ключе??????HHIMERA писал(а):А то, что вы потратили время и затронули эту тему... Время потрачено не зря, подобные темы возникают периодически... а опыта, без потери времени, не наживёшь...
ibiza11 вы тоже уже определитесь пожалста, интересно вам тут или нет, ато, от вашего метания из стороны в сторону, смешно както.....
Re: C для AVR -- пишем аккуратно.
Опыт - не триппер... он не передаётся... он накапливается или приходит со временем, в результате труда и самообучения...
Последний раз редактировалось HHIMERA Вт авг 28, 2012 18:02:04, всего редактировалось 1 раз.
"Я не даю готовых решений, я заставляю думать!"(С)
Re: C для AVR -- пишем аккуратно.
Вот вот еще раз убеждаюсь, что вы здесь не по адресу, вам бы форумы про трипер поискать, там бы вы, как в своей тарелке были.....
- ibiza11
- Поставщик валерьянки для Кота
- Сообщения: 1900
- Зарегистрирован: Сб фев 21, 2009 13:11:40
- Откуда: Москва
Re: C для AVR -- пишем аккуратно.
Смех без причины признак сами знаете кого... Разве речь была об интересе? Автор сам говорит, чтоshads писал(а):ibiza11 вы тоже уже определитесь пожалста, интересно вам тут или нет, ато, от вашего метания из стороны в сторону, смешно както.....
Я просто сделал поспешные выводы, думая, что авторavreal писал(а):Автор из этого потерял какое-то количество времени и всё.
но автор это отрицает, поэтому я не вижу смысла в подобном времяпрепровождении.ibiza11 писал(а):получил хороший опыт, разобрался что к чему, нашел для себя что-то новое и решил поделиться результатами с теми, кому возможно будет интересно посмотреть
Ставим плюсы: )
Re: C для AVR -- пишем аккуратно.
Тема называется "C для AVR -- пишем аккуратно.", а не "Тот сказал это, этот сказал то....."
Re: C для AVR -- пишем аккуратно.
Аккуратно - это не только сэкономить десяток байтов и пару тактов... это и чтобы после каждого, малейшего, изменения исходника не впадать в ступор... "пачему оно не робить?"... если вы ещё не поняли...
"Я не даю готовых решений, я заставляю думать!"(С)
- avreal
- Опытный кот
- Сообщения: 842
- Зарегистрирован: Чт дек 31, 2009 19:27:45
- Откуда: Бровари, Україна
- Контактная информация:
Re: C для AVR -- пишем аккуратно.
Ну так я же сказал позже, что весь «ценный опыт» я получил гораздо раньше. Сейчас благодаря ему хватило одного взгляда на исходник, чтобы выделить критические места. Время было потрачено на переписывание и компиляцию, дополнительного опыта мне лично не принесло. Даже то, что многие на этом форуме считают мою писанину бессмысленной — даже этот опыт уже получен ранее в других темах.ibiza11 писал(а):Вы ошибаетесь, это как раз с Вашей точки зрения, потому что я Вас и процитировал и из этого сделал вывод. Странно, что Вы сначала пишете, что только время потратили не получив ценного опыта, а потом говорите, что это моя точка зрения.
моя точка зрения написана чуть выше
Ваш вывод — не Ваша точкам зрения? Интересно... А чья -- телевизора?
Вот то сообщение, на которое я отвечал.
И в моём ответе на это про точки зрения речь шла только о зря или не зря потраченном времени, но не приобретении или не приобретении опыта.ibiza11 писал(а):Ну Вам виднее, тогда вынужден согласиться с HHIMERA, что время Вы потратили зря.
Последний раз редактировалось avreal Вт авг 28, 2012 18:48:57, всего редактировалось 2 раза.
Лень в виде мании величия: «ты гений, зачем стараться?». В виде комплекса: «всё равно не выйдет, зачем упираться?». Как логика: «если достаточно, зачем знать и уметь больше?». Цель одна: остановить. Не любит тепло работающих мышц и шум работающего мозга.