While unscientific, recently I was surprised to learn that 90%+ of embedded engineers use C and C++. Having developed C and C++ compilers and embedded products, I believe both languages offer their own linguistic characteristics suitable for ASIC, CSIC, DSP, and VLIW based products.
If one uses C and wishes to take advantage "some" of the C++ features without totally converting to C++, what would be the top 5 characteristics that will enhance the embedded development in C?
Selected key C++ characteristics are:
A. Encapsulation via Abstract Data Type
B. Default constructor and destructor
C. Single inheritance
D. Visibility control via public, private, protected specifier
E. Function overloading
F. Virtual functions
G. Multiple inheritance
H. Operator overloading
I anticipate the first five (A thru E, in that order) would benefit the C development the most, because dealing with composite data via struct, functions, and static declaration is more natural to the C language, hence low overhead. Implementing overloading (function and operator) and building VTable (runtime allocation) are more expensive compared to the former group.
Has anyone done any analysis on such prioritization?
Hyoung