2010-02-24 12 views
8

Mögliche Duplizieren:
Why artificially limit your code to C?Warum sollte jemand C anstelle von C++ benutzen?

begann ich mit dem Lernen C ab, dann aber direkt in C++ sprang einfach, weil es unterstützt OO und wurde auch für spätere Arbeiten erforderlich. Einige Unternehmen bestehen jedoch darauf, Leute mit besonders starker C-Erfahrung zu beschäftigen - und ich habe festgestellt, dass dies besonders für Entwickler von Hardware-Treibern gilt.

+0

http://stackoverflow.com/questions/649789/why-artificial-limit-your-code-to-c –

+16

Warum sollte jemand ein Messer anstelle einer Küchenmaschine verwenden? –

+0

@Neil Butterworth Cool, danke. –

Antwort

3

Es könnte einfach sein, dass sie nicht über einen C++ Compiler für die Plattform sie arbeiten ... Ich persönlich würde immer C++ verwenden, bevorzugt gegenüber C.

3

C ist viel mehr tragbar - unter dem aktuellen Ebene der Standardisierung von C++, kann es einfach nicht verwendet werden, wenn die Portabilität wichtig ist. Es ist auch sehr schwer für C++ - Code, in eine C-Umgebung (in einer zuverlässigen und tragbaren Weise) integriert zu werden.

4

C-Zeichenfolge Handhabung ist sehr anders als C++ typische Zeichenfolge-Code. Natürlich würde ich keine C++ - Zeichenfolge in der Nähe meiner Treiber haben wollen!

Genauer gesagt, in guten, modernen C++ müssen Sie Zeiger nicht wirklich verstehen und Puffer auf niedrigem Niveau handhaben; aber das sind grundlegende und entscheidende Fähigkeiten im Gerätetreibercode.

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.

1

Viele eingebettete Systeme wie Mikrocontroller, SPS usw. verwenden C und nicht C++, weil sie keine Klassen haben müssen, sondern nur eine riesige Schleife mit einigen Funktionen. 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.

-1

Ich denke, dass der Grund ziemlich einfach ist, wollen viele Unternehmen 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.

Verwandte Themen