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

 
 
10 страниц V  « < 6 7 8 9 10 >  
Reply to this topicStart new topic
> Вопрос по С++
XVR
сообщение Dec 25 2011, 12:25
Сообщение #106


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата(sasamy @ Dec 25 2011, 15:59) *
Кстати для особо одаренных - 1000 штук вы тоже будете вручную набивать ? речь помоему о кодогенерации.

Речь шла о том, что не надо приплетать кодогенерацию там, где она не нужна. Для 1000 штук добавится еще 7 строк. Тщатьельнее надо смотреть то, что вам пишут.
Цитата
То что вы написали говнокод на С++ влоб переписав кусок кода на С совершенно не разобравшись что он делает,
Абзац. Т.е. я должен был телепатически догадаться, что ваш макрос без начала и концы выдран из ядра Linux'а и сделать вам конфетку?
Про 'говнокод на С++' умолчим - он делает ровно то, что делает ваш макрос. И делает это гораздо лучше
Цитата
при этом не поняли что это из ядра Linux, __setup - это стандартный макрос ядра и он в свою очередь тоже разворачивается в код, говорит что вы некомпетентны.
Это говорит о том, что вы троль.

Цитата
Вот во что сгенерировал препроцессор. Причем код генерируется платформо-зависимый.
Т.е. вы считаете, что этот платформо-зависимый ужас лучше пары классов С++ ?

Цитата
Не хотел ругать вас но вы сами таки напросились.
Да уж, напросился smile3046.gif Диагноз: sasamy - троль необразованный rolleyes.gif
Go to the top of the page
 
+Quote Post
sasamy
сообщение Dec 25 2011, 12:47
Сообщение #107


Знающий
****

Группа: Участник
Сообщений: 783
Регистрация: 22-11-08
Пользователь №: 41 858



Цитата
Т.е. я должен был телепатически догадаться, что ваш макрос без начала и концы выдран из ядра Linux'а и сделать вам конфетку?


А кто вас вообще об этом просил ? Это вы сами решили что напишете божественный код в виде одного класса с парой виртуальных ф-ций.

Цитата(XVR @ Dec 25 2011, 16:25) *
Речь шла о том, что не надо приплетать кодогенерацию там, где она не нужна. Для 1000 штук добавится еще 7 строк. Тщатьельнее надо смотреть то, что вам пишут.


А вы сами внимательно прочитали ??

Цитата
Покажите, пожалуйста, как с помощью препроцессора повторить некий кусок кода N раз, при условии, что N заранее не известно и передаётся откуда-нибудь из вне в виде целочисленного литерала.


ы ?

Цитата
Да уж, напросился smile3046.gif Диагноз: sasamy - троль необразованный rolleyes.gif


Перешли на личности - доводы закончились sm.gif

Сообщение отредактировал sasamy - Dec 25 2011, 13:03
Go to the top of the page
 
+Quote Post
dxp
сообщение Dec 25 2011, 13:26
Сообщение #108


Adept
******

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



QUOTE (Прохожий @ Dec 25 2011, 17:46) *
Ну Вы же далеко не сноб.
Зачем же принижать квалификацию профессионалов в той области, с которой Вы сталкиваетесь крайне редко?
То, что Вы изложили - дилетантизм, простите за резкость.

И в мыслях не было кого-либо принижать. Эти люди - профессионалы в своей области, никто не умаляет их знаний, опыта, квалификации и способностей. Но они специалисты в своих предметных прикладных областях, которые не программирование, поэтому логично, что в вопросах программирования у них подготовка уступает профессиональным программистам (в том числе embedded программистам). В этом нет ничего странного, постыдного и унизительного. Не понимаю, почему вы усмотрели тут наезд с моей стороны.

Насчёт ординарной способности любого выпускника ВУЗа спроектировать ПЛК комментировать не буду, дабы не провоцировать безплодную дискуссию и офтоп.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
XVR
сообщение Dec 25 2011, 13:59
Сообщение #109


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата(sasamy @ Dec 25 2011, 16:47) *
Перешли на личности - доводы закончились sm.gif
Доводы закончились уже давно crying.gif По поводу 'необразованного троля' - беру свои слова обратно. Я посмотрел сообщения sasamy - весьма и весьма образованный специалист. Особенно в Linux (и ARM).

Но вот к сожалению, когда дело касается чего то вне пределов компетенции sasamy, тут образованность целиком заменяется упертостью, игнорированием чужих доводов и умелой подменой предмета спора в процессе спора. Т.е. просыпается классический тролль. Увы увы crying.gif

Вы же сами сказали, что не писали на С++ ничего крупного, откуда же такая уверенность в превосходстве С (и макросов), если у вас по определению не может быть опыта в том, с чем вы пытаетесь сравнивать С ?
Go to the top of the page
 
+Quote Post
sasamy
сообщение Dec 25 2011, 14:24
Сообщение #110


Знающий
****

Группа: Участник
Сообщений: 783
Регистрация: 22-11-08
Пользователь №: 41 858



Цитата(XVR @ Dec 25 2011, 17:59) *
Вы же сами сказали, что не писали на С++ ничего крупного, откуда же такая уверенность в превосходстве С (и макросов), если у вас по определению не может быть опыта в том, с чем вы пытаетесь сравнивать С ?


Если говорить о крупных проектах типа Qt или какой-нибуть EDA (тут на форуме кажется есть ребята которые участвуют в разработке ) - я даже встревать не стал бы sm.gif С++ зарулит С и никакие макросы не спасут наверно если вы об этом, но речь вообще-то тут о микроконтоллерах. Только крупные проекты все больше на других языках начинают делать нежели на С++ - более безопасных и при этом простых.
Go to the top of the page
 
+Quote Post
Прохожий
сообщение Dec 25 2011, 14:50
Сообщение #111


Cундук
*****

Группа: Участник
Сообщений: 1 478
Регистрация: 13-11-06
Из: Ростов-на-Дону
Пользователь №: 22 269



Цитата(dxp @ Dec 25 2011, 17:26) *
Насчёт ординарной способности любого выпускника ВУЗа спроектировать ПЛК комментировать не буду, дабы не провоцировать безплодную дискуссию и офтоп.

Вы знаете, где это можно сделать безболезненно.
Я готов доказать Вам на реальных фактах, что Вы не совсем правы.


Цитата(sonycman @ Dec 25 2011, 16:17) *
Ну да, конечно, то то я смотрю, у нас на заводе повсюду ПЛК одних и тех же солидных фирм, а вот программы для них пишут все подряд, включая тех же недавних студентов.
А качество кода Вы оцениваете по его количеству, похоже - стопицот мильёнов строк - это крутизна, доступная только мегапрограммистам ПЛК? laughing.gif

Дык, на С и С++ пишут тоже все подряд. И схемы разрабатывают. И Саяно-Шушенскую ГЭС эксплуатируют. Давеча вон Фобос-Грунт...
Что же касается кода, о котором я говорил, приходите - покажу.
Писали немцы - уважаемые и опытные люди.
Если сможете сделать лучше, даже денег дадут.
Только одно НО. На верхнем уровне порядка 60 тыс тэгов.
Число датчиков, как дискретных, так и аналоговых - порядка 100 тысяч.
Плюс к этому, Ваше оборудование должно быть сертифицировано во всех инстанциях по всем необходимым критериям безопасности и качества.
В том числе и Вы, как программист.
Цитата(sonycman @ Dec 25 2011, 16:17) *
Впрочем, есть и родной, разработанный на заводе ПЛК, который здорово уступает по надёжности импортным. Наверняка студентами разработан sm.gif

Я ПЛК не разрабатываю. Я их эксплуатирую. Поэтому, Вам виднее...

И вообще, здесь речь не о ПЛК...

Сообщение отредактировал Прохожий - Dec 25 2011, 14:52
Go to the top of the page
 
+Quote Post
XVR
сообщение Dec 25 2011, 15:03
Сообщение #112


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата(sasamy @ Dec 25 2011, 18:24) *
Если говорить о крупных проектах типа Qt или какой-нибуть EDA (тут на форуме кажется есть ребята которые участвуют в разработке ) - я даже встревать не стал бы sm.gif
О! Золотые слова.

Цитата
но речь вообще-то тут о микроконтоллерах.
Да, тут есть нюансы. И я тоже не стану категорически говорить, что для МК С или С++ лучше (а то и must have). biggrin.gif

В принципе С++ обладает большими выразительными силами (назовем это так), чем С. И для МК они так же применимы. Но он так же содержит огромный подводный камень (я бы даже сказал - скалу). Он обладает неограниченными возможностями выражать сложные конструкции простыми действиями. Ну например, сгенерить несколько неочевидных действий в самом простом выражении, типа a=b+c; В результате простая и короткая (по внешнему виду) программа может превратится в монстра wacko.gif
Второй подводный камень - это сам ООП (как не странно). Частенько у программистов есть стойкое убеждение, что если С++ это ООП язык, то все вокруг должно быть в объектах, наследовании, виртуальных функциях и т.д. и т.п. Тут надо вовремя остановится - С++ позволяет писать в обычном процедурном стиле, а что более важно, он позволяет не писать в ООП стиле там, где это не нужно. 1111493779.gif

Так что, если вы собрались писать для МК на С++, то или вы должны быть экспертом в этом языке (что бы не наломать дров), либо быть в постоянном контакте с такими экспертами, что бы они не дали вам наломать дров. santa2.gif

Цитата
Только крупные проекты все больше на других языках начинают делать нежели на С++ - более безопасных и при этом простых.
В общем да, хотя сложность С++ сильно преувеличенна. Пары больших программ (тысяч в несколько строк) вполне достаточно, что бы как то освоится с С++ rolleyes.gif

PS. Хочу уточнить, что под местоимением вы в вышеизложенном тексте, а не имею в виду лично sasamy, без обид.
Go to the top of the page
 
+Quote Post
Прохожий
сообщение Dec 25 2011, 15:14
Сообщение #113


Cундук
*****

Группа: Участник
Сообщений: 1 478
Регистрация: 13-11-06
Из: Ростов-на-Дону
Пользователь №: 22 269



Цитата(XVR @ Dec 25 2011, 19:03) *
В принципе С++ обладает большими выразительными силами (назовем это так), чем С. И для МК они так же применимы. Но он так же содержит огромный подводный камень (я бы даже сказал - скалу). Он обладает неограниченными возможностями выражать сложные конструкции простыми действиями. Ну например, сгенерить несколько неочевидных действий в самом простом выражении, типа a=b+c; В результате простая и короткая (по внешнему виду) программа может превратится в монстра wacko.gif
Второй подводный камень - это сам ООП (как не странно). Частенько у программистов есть стойкое убеждение, что если С++ это ООП язык, то все вокруг должно быть в объектах, наследовании, виртуальных функциях и т.д. и т.п. Тут надо вовремя остановится - С++ позволяет писать в обычном процедурном стиле, а что более важно, он позволяет не писать в ООП стиле там, где это не нужно. 1111493779.gif

Так что, если вы собрались писать для МК на С++, то или вы должны быть экспертом в этом языке (что бы не наломать дров), либо быть в постоянном контакте с такими экспертами, что бы они не дали вам наломать дров. santa2.gif

В мемориз, однозначно!
Все правильно.
Каждой задаче - своя методология ее решения.
Нет применению ООП без нужды! sm.gif
Go to the top of the page
 
+Quote Post
sonycman
сообщение Dec 25 2011, 15:35
Сообщение #114


Любитель
*****

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



Я тоже пишу, так сказать, под плюсами, но практически не использую ООП. sm.gif
Просто очень удобно работать с классами, перегруженными функциями\операторами, пользоваться всякими плюшками вроде агрументов по умолчанию и т.п.
Мелочи, но приятные, зачем себя ограничивать рамками "простого" Си?

Цитата(Прохожий @ Dec 25 2011, 18:50) *
Дык, на С и С++ пишут тоже все подряд. И схемы разрабатывают. И Саяно-Шушенскую ГЭС эксплуатируют. Давеча вон Фобос-Грунт...

Вот-вот, и у студента, которому взбредёт в голову с нуля создать такую сложную железку, как ПЛК, результат будет такой же...
Там ведь не только программирование, но ещё и схемотехника, разводка печатных плат и т.п.
Go to the top of the page
 
+Quote Post
dxp
сообщение Dec 25 2011, 15:54
Сообщение #115


Adept
******

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



QUOTE (Прохожий @ Dec 25 2011, 22:14) *
В мемориз, однозначно!
Все правильно.
Каждой задаче - своя методология ее решения.
Нет применению ООП без нужды! sm.gif

Так именно об этом и речь!

QUOTE (sonycman @ Dec 25 2011, 22:35) *
Я тоже пишу, так сказать, под плюсами, но практически не использую ООП. sm.gif
Просто очень удобно работать с классами, перегруженными функциями\операторами, пользоваться всякими плюшками вроде агрументов по умолчанию и т.п.
Мелочи, но приятные, зачем себя ограничивать рамками "простого" Си?

+1!

QUOTE (XVR @ Dec 25 2011, 22:03) *
Так что, если вы собрались писать для МК на С++, то или вы должны быть экспертом в этом языке (что бы не наломать дров), либо быть в постоянном контакте с такими экспертами, что бы они не дали вам наломать дров. santa2.gif

Я бы уточнил: необходимо разбираться в используемых средствах языка. Например, если человек не разбирается (чувствует себя неуверенно) в шаблонах, то лучше их ему [пока] не использовать (там хватает заслуживающих внимания средств и без них). И это касается не только МК, но и языка вообще. И не только С++, но и других языков тоже (на том же С с адресной арифметикой можно ого-го дровишек наломать). Если что угодно делать без достаточного понимания, то успеха не достичь. Это универсальное правило. И это не причина шельмовать инструментарий.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
XVR
сообщение Dec 25 2011, 16:41
Сообщение #116


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата(dxp @ Dec 25 2011, 19:54) *
И это касается не только МК, но и языка вообще. И не только С++,
Конечно, но на МК это проявляется особенно остро. Если на РС слепить программу на С++ со всеми контейнерами stl, привлечь парочку паттернов (потяжелее), и еще чего нибудь, то на РС программа станет на пару [десятков] мегабайт больше, при запуске съест на пару [сотен] мегабайт больше, и будет работать на 50% медленнее. С современными характеристиками РС этого никто не заметит. А вот для МК это будет фатально - программа тупо не влезет ни в какой камень crying.gif
Go to the top of the page
 
+Quote Post
dxp
сообщение Dec 25 2011, 17:02
Сообщение #117


Adept
******

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



QUOTE (XVR @ Dec 25 2011, 23:41) *
Конечно, но на МК это проявляется особенно остро. Если на РС слепить программу на С++ со всеми контейнерами stl, привлечь парочку паттернов (потяжелее), и еще чего нибудь, то на РС программа станет на пару [десятков] мегабайт больше, при запуске съест на пару [сотен] мегабайт больше, и будет работать на 50% медленнее. С современными характеристиками РС этого никто не заметит. А вот для МК это будет фатально - программа тупо не влезет ни в какой камень crying.gif

Зато МК быстро таким образом приучает к дисциплине мышления и кодирования, мотивирует работать "компилятор" в голове у программиста и учит чётко представлять, как реализуются абстракции и концепции ЯВУ в железе, и во что выльется та или иная языковая конструкция. А РСшный программер, которому целевая платформа "прощает" некачественную работу, имеет шансы так не узнать, какой говнокод он генерит. sm.gif Первый путь мне больше по душе.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
Прохожий
сообщение Dec 25 2011, 17:26
Сообщение #118


Cундук
*****

Группа: Участник
Сообщений: 1 478
Регистрация: 13-11-06
Из: Ростов-на-Дону
Пользователь №: 22 269



Цитата(sonycman @ Dec 25 2011, 19:35) *
Вот-вот, и у студента, которому взбредёт в голову с нуля создать такую сложную железку, как ПЛК, результат будет такой же...
Там ведь не только программирование, но ещё и схемотехника, разводка печатных плат и т.п.

А Вы в курсе, что по очень правдоподобной легенде, нынешние популярные вычислители AVR и ARM созданы именно студентами.

Цитата(dxp @ Dec 25 2011, 19:54) *
Я бы уточнил: необходимо разбираться в используемых средствах языка. Например, если человек не разбирается (чувствует себя неуверенно) в шаблонах, то лучше их ему [пока] не использовать (там хватает заслуживающих внимания средств и без них). И это касается не только МК, но и языка вообще. И не только С++, но и других языков тоже (на том же С с адресной арифметикой можно ого-го дровишек наломать). Если что угодно делать без достаточного понимания, то успеха не достичь. Это универсальное правило. И это не причина шельмовать инструментарий.

Тогда я бы пошел еще дальше.
Надо разбираться в теории того, что ты делаешь.
Даже здесь в качестве примера приводилась задержка в виде цикла замкнутого на себя.
Но это же недопустимо по-любому.
Я даже на РС так не делаю. А уж на МК...
Go to the top of the page
 
+Quote Post
neiver
сообщение Dec 25 2011, 17:30
Сообщение #119


Местный
***

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



Цитата(sasamy @ Dec 25 2011, 14:37) *
Препроцессор С Тьюринг-неполный и только средствами препроцессора циклы и прочее задача нетривиальная (если вообще разрешимая).

Именно такого решения я от вас и ждал. Можно было еще сослаться на BOOST_PP_REPEAT и иже с ним. Там можно до 255 "итераций" и до 3 уровней вложенности. Ну да не важно.
А теперь попробуйте пожалуйста сделать максимально объективный сравнительный анализ этих двух техник, скажем, по таким параметрам:
- функциональность;
- области применимости;
- ограничения;
- удобство диагностики ошибок кодирования;
- удобство чтения исходного текста;
- удобство отладки;
- стоимость внесения изменений;
- порог вхождения для использования.

Выводы за вами.
Go to the top of the page
 
+Quote Post
dxp
сообщение Dec 25 2011, 17:47
Сообщение #120


Adept
******

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



QUOTE (Прохожий @ Dec 26 2011, 00:26) *
А Вы в курсе, что по очень правдоподобной легенде, нынешние популярные вычислители AVR и ARM созданы именно студентами.

Да, AVR кривоват, этого не отнять.

QUOTE (Прохожий @ Dec 26 2011, 00:26) *
Даже здесь в качестве примера приводилась задержка в виде цикла замкнутого на себя.
Но это же недопустимо по-любому.
Я даже на РС так не делаю. А уж на МК...

Вы про шаблон Nops? Очень простое, эффективное, красивое и безопасное решение. Не понимаю, что вы там смогли усмотреть плохого. Компилятор на этапе компиляции рекурсивно разворачивает цикл, генерируя столько нопов подряд, сколько указано.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 19th July 2025 - 20:50
Рейтинг@Mail.ru


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