1) Because it posses better performance and execution speed (real-time programming & etc). A performance difference....
2) Compiler isn't support C++ language, but support C language
(That's something I haven't thought of, but let's say there isn't, in that case, is the lack of C++ compilers for micro controllers means that there can't be, or means that there shouldn't be. Or maybe they didn't design one because it's complex.
3) Probably, it's better to use a tool that is better suited to your task. It's depends...Sometimes the C language can solve your problem more efficiently for certain tasks.
4) A lot of programmers raised on C will stick to C because it's what they know, with logic like "well if you're not going to use the features of C++, you might as well use C". An experienced C programmer has techniques that he's comfortable with and simply doesn't see a need to switch.
But do not forget (!!!!!) that today's C++ is a multiparadigm programming language, one supporting a combination of procedural, object-oriented, functional, generic, and metaprogramming features. This power and flexibility make C++ a tool without equal, but can also cause some confusion. All the "proper usage" rules seem to have exceptions. How are we to make sense of such a language?
To make sense of C++, you have to recognize its four sublanguages:
* C. Way down deep, C++ is still based on C. Blocks, statements, the preprocessor, built-in data types, arrays, pointers, etc., all come from C. In many cases, C++ offers approaches to problems that are superior to their C counterparts
(C formerly called "C with classes" )
* Object-Oriented C++.
* Template C++.
* The STL.
Please read following article:
http://wolfhalton.info/2009/09/20/why-do-you-use-c-instead-of-c/[
^]