Ich habe mit dem Lernen von C angefangen, bin dann aber direkt in C ++ gesprungen, einfach weil es OO unterstützt und auch für die weitere Arbeit benötigt wurde. Einige Unternehmen bestehen jedoch darauf, Mitarbeiter mit besonders starker C-Erfahrung zu beschäftigen - und ich habe festgestellt, dass dies besonders für Entwickler von Hardware-Treibern gilt.
Die Verarbeitung von C-Zeichenfolgen ist sehr anders als C ++ - typischer Zeichenfolgencode. Natürlich würde ich keine C ++ - Zeichenfolge in der Nähe meiner Treiber haben wollen!
Genauer gesagt müssen Sie in gutem, modernem C ++ Zeiger nicht wirklich verstehen und Puffer auf niedriger Ebene handhaben; aber das sind grundlegende und entscheidende Fähigkeiten im Gerätetreiber-Code.
Ja, es ist möglich, gute Treiber in C ++ zu schreiben; aber das C ++ würde wirklich wie C aussehen mit ein paar zusätzlichen Funktionen. Der größte Teil der C ++ - Bibliothek hat keinen Platz in Deviceland.
Es könnte einfach sein, dass sie keinen C ++ - Compiler für die Plattform haben, mit der sie arbeiten ... Ich persönlich würde immer C ++ anstelle von C verwenden.
Viele eingebettete Systeme wie Mikrocontroller, SPS usw. verwenden C und nicht C ++, da sie keine Klassen haben müssen, sondern nur eine riesige Schleife, über die einige Funktionen verteilt sind. Nichts Besonderes, aber genug, um die Arbeit in einer höheren Sprache zu erledigen. Da C den Menschen vertrauter ist als die Montage, funktioniert es in ~ 98% der Fälle gut.
Ich denke, dass der Grund ziemlich einfach ist, viele Unternehmen wollen effizient lesbaren Code. C ist eine relativ einfache Sprache zu verstehen und zu verstehen, und für viele Anwendungen gibt es keinen Grund, Entwicklung und Code-Kontinuität zu verkomplizieren, indem ganze neue Konzepte (Klassen, Polymorphie, Vererbung usw.) hinzugefügt werden, die OO-Sprachen ermöglichen, aber nicht benötigt werden.