реклама на сайте
подробности

 
 
12 страниц V  « < 3 4 5 6 7 > »   
Reply to this topicStart new topic
> Как ПРАВИЛЬНО программировать на С++, Вопросы по программированию на С++ для микроконтроллеров.
Andron_
сообщение Aug 24 2010, 14:10
Сообщение #61


.NET developer
***

Группа: Свой
Сообщений: 218
Регистрация: 20-10-07
Из: Новосибирск
Пользователь №: 31 532



по осени начал писать проект для сигнальника TI, решил на свой страх и риск использовать С++ и динамическое управление памятью в некоторых моментах.
поскольку продумать изначально удачную структуру умишка не хватило (в-смысле, не смог) структура программы получилась путанная местами и через чур замудренная. Сейчас дописываю... Естественно, что писалось полгода назад я уже наглухо забыл. В-принципе, мне нравится - с помощью Doxygen'овской документации весьма приятно дописывать.
Динамическое выделение пока также работает стабильно, я боялся худшего.

Немного неудобно использовать inline функции в классах - CCS 3.3 корявенько их разворачивает в редакторе во время отладки и по шагам ходит как-то неправильно местами.
Go to the top of the page
 
+Quote Post
ReAl
сообщение Aug 24 2010, 15:15
Сообщение #62


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



Цитата(777777 @ Aug 24 2010, 14:21) *
Да это явление может и нормальное, я не спорю. Хуже когда этот класс в принципе не может иметь несколько экземпляров - это уже архитектурная проблема, говорящая о том, что классу тут делать нечего.
Можно например написать класс CIdle, который будет инкапсулировать в себе бесконечный цикл, имеющийся в любом контроллере

Во-первых, если я хорошо высплюсь, то я и "чисто-С-шных" маразмов в ответ смогу придумать как доказательство того, что С в микроконтроллрах делать нечего.
Во вторых, в этой теме уже говорили - и в С несколько переменных, относящихся к одной и той же логической сущности, имеет смысл объединить в структуру даже если эта структра используется в программе в принципе один единственный раз. Это будет "архитектурной проблемой" ? Лучше пусть будет несколько на вид независимых переменных?




--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post
xelax
сообщение Aug 25 2010, 08:38
Сообщение #63


Местный
***

Группа: Свой
Сообщений: 370
Регистрация: 7-11-06
Пользователь №: 22 035



Цитата(MrYuran @ Aug 23 2010, 11:33) *
У "плюсов" есть ещё один несомненный плюс. Прежде чем сломя голову что-то писать, надо сначала продумать структуру.
То есть, дополнительный организующий момент.
Кстати, данная тема именно с этого и началась - с вопроса об оптимальной структуре.


Я то наивно полагал, что продумывать структуру программы необходимо вне зависимости от языка программирования. biggrin.gif

Выскажу кромольную мысль:
На архитектуру язык программирования влияет лишь косвенно. Этап перехода с С на С++ уже давным давно закончился (если кто-то ещё не заметил). Все более или менее крупные и что немаловажно УСПЕШНЫЕ компании специализирующиеся на разработке софте (и эмбеддед в том числе) начинают с UML или подобного дизайна. Да собственно это и есть основной этап. А в получившейся на выходе архитектуре-софте любая команда индо-китайских тупокодеров добьёт код за пару месяцев.
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Aug 25 2010, 08:48
Сообщение #64


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(xelax @ Aug 25 2010, 12:38) *
Я то наивно полагал, что продумывать структуру программы необходимо вне зависимости от языка программирования. biggrin.gif

Ну, иерархическая модель классов более располагает к структурированию, чем рассыпные модули си.


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
ReAl
сообщение Aug 25 2010, 11:19
Сообщение #65


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



Я бы сказал так — по сравнению с С язык С++ более жёстко наказывает за непродуманность структуры.


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post
dxp
сообщение Aug 26 2010, 05:54
Сообщение #66


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(ReAl @ Aug 25 2010, 18:19) *
Я бы сказал так — по сравнению с С язык С++ более жёстко наказывает за непродуманность структуры.

Скорее более явно показывает (подчеркивает) корявости в этом контексте.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
Waso
сообщение Sep 3 2010, 05:35
Сообщение #67


Местный
***

Группа: Свой
Сообщений: 268
Регистрация: 4-11-05
Пользователь №: 10 470



Цитата(neiver @ Aug 19 2010, 21:40) *
Примеры есть у меня, есть и свой подход к программированию для систем с сильно ограниченными ресурсами на С++(на примере AVR).
Будет свободное время - напишу статейку по этой теме (если будут желающие её читать smile.gif ).
А так вкратце могу сказать, что программы на С++ получаются компактнее, быстрее и легче читаются аналогичных программ на Си.

Цитата(MrYuran @ Aug 23 2010, 14:33) *
Может, напишем сообща?
rolleyes.gif
Я уже название придумал.
"С++ в микроконтроллерах. Почему бы и нет?"

Желающие читать такие статьи есть! Вот по крайней мере я, например! Так-что жду с нетерпением.
А как наберете с десяток статей - соедините их в книгу и будете барыши получать. wink.gif
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Sep 3 2010, 14:58
Сообщение #68


Профессионал
*****

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Цитата(Waso @ Sep 3 2010, 09:35) *
А как наберете с десяток статей - соедините их в книгу и будете барыши получать. wink.gif


Наивность впечатляет...
Go to the top of the page
 
+Quote Post
Waso
сообщение Sep 3 2010, 15:07
Сообщение #69


Местный
***

Группа: Свой
Сообщений: 268
Регистрация: 4-11-05
Пользователь №: 10 470



В чем же она заключается, наивность-то?
Go to the top of the page
 
+Quote Post
DRUID3
сообщение Sep 5 2010, 18:11
Сообщение #70


山伏
*****

Группа: Свой
Сообщений: 1 827
Регистрация: 3-08-06
Из: Kyyiv
Пользователь №: 19 294



Цитата(xelax @ Aug 25 2010, 11:38) *
Этап перехода с С на С++ уже давным давно закончился (если кто-то ещё не заметил).

Да... я заметил. Закончился. Как и жизнь C++. Мало того - когда о Cpp забудут на C еще будут писать целые системы.

Цитата(xelax @ Aug 25 2010, 11:38) *
Все более или менее крупные и что немаловажно УСПЕШНЫЕ компании специализирующиеся на разработке софте (и эмбеддед в том числе) начинают с UML или подобного дизайна.

biggrin.gif ... Эмбэддед буржуи часто называют JavaME. А "подобный дизайн"... Так все с него начинают. Даже строители зданий из железобетонных блоков.

Цитата(xelax @ Aug 25 2010, 11:38) *
Да собственно это и есть основной этап. А в получившейся на выходе архитектуре-софте любая команда индо-китайских тупокодеров добьёт код за пару месяцев.

Я сомневаюсь, что для 8-и битника стиральной машины нужна прям-таки команда индусов и менеджеров с UML диаграммами в руках.

Цитата(MrYuran @ Aug 25 2010, 11:48) *
Ну, иерархическая модель классов более располагает к структурированию, чем рассыпные модули си.

biggrin.gif ага... И к постоянному переструктурированию. Сколькими способами можно разбить белый лист на подчасти!? Не даром в том же C++ есть все что-бы нарушить инкапсуляцию "если очень надо"... Ну а полиморфизм - это ли не повод накидать в проект всего чего не лень? То, что при этом он, зачастую теряет не только обозримость, но и простую читабельность(х.з. какую там из реинкарнаций и где вызывают - и не все IDE такие же функциональные как мелкософтовская визуалстудия). Ну а уж если появилась иерархическая модель классов - это верный признак, что от первоначальной архитектуры отказались biggrin.gif biggrin.gif biggrin.gif , но переписать все заново не представляется возможным ввиду отсутствия времени совместно с запутанностью и нечитабельностью уже написанного кода.


Хорошая статья что-бы задуматься - а туда ли в жизни направляешь стопы свои... wink.gif


--------------------
Нас помнят пока мы мешаем другим...
//--------------------------------------------------------
Хороший блатной - мертвый...
//--------------------------------------------------------
Нет старик, это те дроиды которых я ищу...
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Sep 6 2010, 11:34
Сообщение #71


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(DRUID3 @ Sep 5 2010, 22:11) *

Это всё конечно хорошо, в теории.
А в реальности никто не даст 20 лет на вылизывание кода, как в случае с академическим миниксом.
Зачастую цикл жизни изделия составляет от 2 до 5 лет.
Да и не в каждой конторе работают гении уровня Таненбаума.
Так что, оставшимся остаётся довольствоваться прозой и использовать общепринятые методики и наработки.
Тем более что действительно, лучше сегодня выпустить актуальное, хоть и несколько сырое изделие, чем завтра сидеть с вылизанным, но никому не нужным...


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
sigmaN
сообщение Sep 6 2010, 20:52
Сообщение #72


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



Цитата
Хорошая статья что-бы задуматься - а туда ли в жизни направляешь стопы свои...
А вы никогда не слышали как Торвальдс критикует микроядра? smile.gif bb-offtopic.gif


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post
neiver
сообщение Sep 7 2010, 08:32
Сообщение #73


Местный
***

Группа: Участник
Сообщений: 214
Регистрация: 22-03-10
Из: Саратов
Пользователь №: 56 123



Цитата(sigmaN @ Sep 7 2010, 00:52) *
А вы никогда не слышали как Торвальдс критикует микроядра? smile.gif bb-offtopic.gif

Торвальдс и Си++ усиленно критикует.
Мне нравится, что Steven Dewhurst ему на это отвечает.
Go to the top of the page
 
+Quote Post
halfdoom
сообщение Sep 7 2010, 09:21
Сообщение #74


Профессионал
*****

Группа: Свой
Сообщений: 1 003
Регистрация: 20-01-05
Пользователь №: 2 072



Цитата(Ink @ Aug 3 2010, 10:08) *
но когда у вас будет огромный проект, вы встряните и будете долго понимать, как же так получилось непонятно.
Вот большой проект: http://www.freebsd.org/cgi/cvsweb.cgi/src/. C++ есть только в библиотеках для C++. Ничего, не встряли. А NetBSD из той-же серии так вообще на тьму платформ портирована, и во многом благодаря здоровому консерватизму.
Go to the top of the page
 
+Quote Post
Dima_G
сообщение Sep 7 2010, 09:40
Сообщение #75


Местный
***

Группа: Свой
Сообщений: 279
Регистрация: 2-07-08
Из: Новосибирск
Пользователь №: 38 699



Цитата(halfdoom @ Sep 7 2010, 16:21) *
Вот большой проект: http://www.freebsd.org/cgi/cvsweb.cgi/src/. C++ есть только в библиотеках для C++. Ничего, не встряли. А NetBSD из той-же серии так вообще на тьму платформ портирована, и во многом благодаря здоровому консерватизму.

А в чем плюс то голого сишного подхода? Никто не спорит, что все, что пишется на С++, можно сделать и на Си.
Вопрос - какими средствами и какой надежностью.

Go to the top of the page
 
+Quote Post

12 страниц V  « < 3 4 5 6 7 > » 
Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 03:30
Рейтинг@Mail.ru


Страница сгенерированна за 0.01491 секунд с 7
ELECTRONIX ©2004-2016