¿Cuándo utiliza C ++ sobre C para la programación integrada?

Siempre que el procesador pueda soportarlo (que es más o menos siempre).

Como C ++ es esencialmente un superconjunto de C, puedo escribir código C y hacer que el compilador de C ++ lo compile por mí. Entonces puedo usar algo del azúcar sintáctico más agradable de C ++ incluso si el procesador no es realmente compatible con la programación de estilo OOPS.

Debe tener un poco más de cuidado con las cosas que escribe en un entorno incrustado; sobre todo, debe tener mucho cuidado con el consumo de memoria, por lo que debe tener cuidado de no volverse demasiado loco con las plantillas y las funciones en línea, etc.

Pero, básicamente, no hay una razón real para no usar una clase con funciones miembro para agrupar alguna pepita de funcionalidad y facilitar su reutilización.

He estado jugando con el ESP8266 (una pequeña computadora increíble que cuesta $ 2 y tiene soporte WiFi completo). El sistema solo fue diseñado para soportar C, pero pude agregar soporte para C ++ con bastante facilidad, y estoy Me alegro de haberlo hecho porque ha hecho que mi trabajo con él sea mucho más fácil.

Tanto C como C ++ se utilizan en la programación integrada. Depende principalmente del diseño de sus sistemas. Deberíamos usar C ++ para cumplir con los requisitos de cambios futuros en el sistema. La programación orientada a objetos facilita la mejora del código y mantiene el código limpio y legible. Contrariamente a esto, si se espera una mejora de código menor, siempre se prefiere usar una codificación de estilo C orientada a la estructura simple. Ambos lenguajes de alto nivel están cerca del hardware y se pueden usar en sistemas embebidos con memoria limitada.

Usamos un subconjunto muy restringido de C ++. Básicamente C con clases. No permitimos el montón, por lo que el STL no se puede utilizar. Pero el uso de clases con métodos virtuales permite que Unit Testing use GTest en máquinas host. Aparte de eso, unos pocos bits de azúcar sintáctica C ++ que hacen que el código sea más agradable.

Solo cuando no hay un compilador de c ++ de destino.

Es posible que desee restringir el uso de las bibliotecas estándar de C ++ por completo y escribir las integradas amigables incrustadas, ya que es posible que necesite controlar la asignación dinámica y el uso de la memoria más estrictamente que en los sistemas no integrados de lo permitido en el STL.

En entornos muy ajustados, es posible que desee desactivar RTTI, lo que limitaría algunas características de C ++, como la conversión dinámica.

Sin embargo, en general, puede escribir un código mejor y más rápido en C ++ en menos código que C, pero es posible que deba crear algunas bibliotecas que lo habiliten.