CMP EMBEDDED.COM

Login | Register     Welcome Guest   IPS  
HOME DESIGN PRODUCTS COLUMNS E-LEARNING CONFERENCES CODE FORUMS/BLOGS NEWSLETTERS CONTACT FEATURES RSS RSS

Why C++ is a viable alternative to C in embedded systems design



Embedded.com
So you're an embedded developer. You know that C is the right language for the job, although sometimes those maintenance cycles can be, well repetitive. You sometimes get that nagging feeling that you are coding like an automaton, repeatedly creating basic iterations over structures that are remarkably similar to ones from last week or last month.

You've heard the sales pitch for C++ as a powerful language but you also hear of horror stories about its large footprint, which makes it a no-go for embedded applications. Besides, it's so complicated: it must be really difficult to work with.

Does this have a familiar ring to it? The embedded development market covers a large range of application areas, including automotive, medical, defense and telecommunications. While C undoubtedly enjoys a good reputation as a strong and powerful language for embedded development, C++ does not have quite such a broad appeal. With today's capable and sophisticated C++ environments this is often an incorrect belief.

Why is C++ a viable alternative to C? As a language, it did of course grow from roots in C. Simply re-compiling a C project using a C++ compiler will yield more rigorous code type checking (there are some declaration incompatibilities that you may have to overcome first).

Once you embrace its core features, C++ offers a greater abstraction of data, which is an important objective for larger, more complex software systems. Object Orientation (OO) takes this abstraction a step further, where you can replace global "worker" functions with class functionality.

Templates are perhaps the biggest fear-factor against C++ usage, and most often quoted as the reason or presumption for large code-bloat experiences. But, in fact, well-designed template code offers elegant means of handling a variety of data-types consistently. C++'s Standard Library is an advertisement for such generic programming styles.

Exception handling is another area that suffers from FUD (Fear, Uncertainty, and Doubt). Exceptions in many C software systems will typically be a manual, programmatic task. This exception handling machinery can be replaced, albeit at a cost, with a more elegant C++ exception-based solution.

As always, the elegant solution only gets its due recognition when requirement changes are thrust on a development team. The speed with which well-crafted object-based designs can adapt in such circumstances is due, in part, to better abstraction and hiding of implementation.

1 | 2 | 3

Rate this article: Low High
Current rating
  • .
Embedded.com Career Center
Ready for a change?
SEARCH JOBS

Browse all jobs

SPONSOR
RECENT JOB POSTINGS





 :