Поскольку разработчики ОСРВ, скорее всего, недостаточно хорошо знают С ++.
Некоторые считают, что в C ++ есть издержки
и расходы, которые делают это как-то
не подходит для встроенных систем
программирование, что ему не хватает контроля
и краткость C, или что, в то время как это
может подойти для какой-то ниши
приложения, он никогда не заменит C
как язык выбора для встраиваемых
системы.
Эти представления неверны. куда
компиляторы и другие инструменты
адекватный, C ++ всегда предпочтительнее
C как язык реализации для
встроенные системы. Делая
все, что делает С, предлагает
большие возможности для самовыражения,
инкапсуляция, повторное использование, и это даже
позволяет улучшить размер и скорость
непрактичные в C.
> Почему же тогда такое восприятие
сохраняются? Основная причина в том, что когда
люди формируют свое мнение, они знают
гораздо больше о C, чем о C ++.
Они прочитали несколько книг, написали
некоторый код, и компетентны в использовании
возможности C ++, но им не хватает
знание того, что происходит под
капот, знакомство, которое позволяет
один для визуализации разборки во время
набрав источник или даже во время
формулировка дизайна.
Встроенные программные приложения чаще всего пишутся на C. На протяжении многих лет C ++ имеет
был замечен как естественный преемник и нашел большее признание, но увеличение
его использование было намного медленнее, чем ожидалось.
Есть несколько причин для этого. Во-первых, встроенные разработчики довольно
консервативные и предпочитают использовать решения, которые доказали, а не новые "", если это
не сломайся, не чини ".
Есть также урок опыта. Многие разработчики пытались использовать C ++ для
встроенные приложения и не удалось. Такие неудачи иногда могут быть отнесены к
недостатки в инструментах разработки, но чаще всего это нецелевое использование
язык "относящийся к встроенной системе как к настольному компьютеру", который виноват.
ограничения C
Хотя C широко используется, у него есть ограничения, так как он не предназначен для встроенных
приложений или для проектов такого масштаба, что сейчас является обычным явлением. Основные ограничения включают в себя:
1) C чрезвычайно мощный и гибкий и поэтому может быть опасным (имеет низкий уровень
возможности - которые полезны для встроенных ", но также представляют собой много подводных камней для
неосторожный.)
2) Программисты должны быть очень методичными и дисциплинированными
3) Программисты должны понимать, как программа ведет себя на низком и высоком уровнях (большой
проекты, таким образом, трудно поддерживать)
4) Программистам необходимы экспертные знания по приложению
Однако C ++ обладает мощными объектно-ориентированными возможностями, которые могут значительно помочь в
устранение ограничений C:
1) он заключает в капсулу и скрывает области высокого опыта от неспециалистов в «объекты»; (A
Тестовый пример продемонстрирует инкапсуляцию опыта позже в части 2 в этом
серия).
2) Объекты могут интуитивно использоваться неспециалистами для реализации концептуальных проектов на
высокий уровень