roboforum.ru

Технический форум по робототехнике.

С или C++

Re: С или C++

HarryStar » 19 авг 2011, 10:22

Вообще слово библиотека несколько шире. Это не только файлы "lib", но так же называют редко изменяемые куски кода, которые могут хранится наример на си в исходниках и подключаться к разным проектам. Свои или чужие, неважно.
У меня (думаю как и у многих) есть свои библиотеки, куда сложены различные функции, используемые в разных проектах.

Re: С или C++

MasterWizard » 28 сен 2011, 15:45

По теме топика: для контроллеров - почти всегда С (за исключением ассемблера, где он нужен), для РС - ситуативно, примерно 50/50

Re: С или C++

Nemod » 05 ноя 2011, 23:07

ИМХО
Си нужно применять там где нежелательно пользоваться динамическим выделением памяти(т.е использовать heap), если ОЗУ слишком мало. То есть на Си надо программировать для тех микроконтроллеров у которых озу обычно расположена в том же корпусе что и память программ и ядро начиная от пиков, авров, с51, 68 до arm7tdmi, renesas, arm cortex m3, m4.
Кроме того для некторых микроконтроллеров вообще нет приплюснутого компилятора.
Для ядер arm9, arm11, intel atom, cortex a8 уже можно применять обьектно-ориентированную модель и верхний уровень (ИИ например) писать на С++, при этом нижний уровень ПО часто используется написанный ранее на Си от другий более слабых процессоров.

Re: С или C++

Vooon » 06 ноя 2011, 09:48

И когда это в си были проблемы с динамической памятью? И что мешает использовать ООП в си?

Re: С или C++

mgalemin » 21 ноя 2011, 15:50

Тему можно переименовать на "Рубанок или стамеска" и продолжать спорить до хрипоты.

Re: С или C++

=DeaD= » 21 ноя 2011, 15:57

Рубанок не включает в себя стамеску, как и наоборот :)

Re: С или C++

mgalemin » 21 ноя 2011, 15:59

Хм, скажу по-другому: под каждую задачу - свой инструмент.

Re: С или C++

uni » 09 янв 2012, 14:51

Пример экспериментов с C++ для AVR:
"Кросс-компиляторный шаблон (EC++, IAR, GCC), Попытка правильного проектирования сверху"
http://electronix.ru/forum/index.php?showtopic=92599

Тут можно посмотреть как выглядит код:
https://mysvn.ru/cop/portfolio/avr/Example/

Так выглядит симуляция его работы в Proteus:
https://mysvn.ru/cop/portfolio/avr/avr003.png

Пример кода настройки внутренностей mcu:
https://mysvn.ru/cop/portfolio/avr/Example/MCU.cpp

Эти примеры работают в двух средах программирования: IAR и AVR GCC (C++ оба). Т.е. один и тот же код компилируется и там и там.

Пишу на С++ ещё и потому, что сейчас большинство высокоуровневых IDE заточены именно под C++.
Вот пример проекта, обёрнутого в C++:
https://mysvn.ru/cop/portfolio/avr/RGBLeds/

Так выглядит симуляция его работы в Proteus:
https://mysvn.ru/cop/portfolio/avr/avr005.png

Мой набор инструментария:
https://mysvn.ru/cop/portfolio/avr/RGBLeds/readme.txt

Добавлено спустя 5 минут 50 секунд:
Vooon писал(а):И когда это в си были проблемы с динамической памятью? И что мешает использовать ООП в си?

Это как? Перегрузка функций что-ли есть?

На самом деле сейчас видно, что микроконтроллеры всё доступнее и доступнее, периферия внутри всё шире, они всё мощнее. Рано или поздно произойдёт переход на С++. Точно также, как многие писали на асме, но потом сравнили трудозатраты при кодинге на Си и перешли на Си.

Re: С или C++

elmot » 09 янв 2012, 16:35

+1 за ++
Вот только 3 дня тому что поскреб лысину и переименовал главый файл в .cpp :).
И первый объектик уже забабахал. Пришлось слегка помучать настройки проекта в keil, чтобы завелся менеджер памяти. Но по-моему уже окупилось. Диагностика компилятора гораздо более внятная, контроль типов построже, инкапсуляция рулит. В общем, рекомендую. IDE Keil 4.22, устройство - STM32F4-Discovery.


Rambler\'s Top100 Mail.ru counter