Überblick über die Unterschiede zwischen C, C++ und C#
https://link.zhihu.com/?target=https%3A//csharp-station.com/understanding-the-differences-between-cc-and-c/Die Artikelübersetzung stammt von diesem Link
01. C-Sprache
Dennis Ritchie schuf 1972 die Sprache C und veröffentlichte sie 1978. Ritchie entwarf C mit der ursprünglichen Absicht, neue Versionen von Unix zu entwickeln . Bis dahin verwendete Unix die Assemblersprache , die niedrigste . Die Geburt der Sprache C revolutionierte die Programmierung und Betriebssysteme . Der Rest ist, wie man sagt, Geschichte.
- C ist ebenfalls eine Low-Level-Programmiersprache und ihre Effizienz kommt der von Assembler nahe .
- Es bietet eine grundlegende Möglichkeit , auf den Speicher zuzugreifen, und erfordert nur sehr wenig Laufzeitunterstützung.
- Aufgrund des Alters von C kann die Verwendung von C einige Sicherheitsverbesserungen mit sich bringen (weniger Benutzer, geringere Möglichkeit von Hackerangriffen).
Entwickler verwenden es immer noch für Betriebssysteme, Softwareentwicklung auf Kernel-Ebene, Hardwaretreiber und Anwendungen, die mit älterem Code funktionieren müssen. (Schauen Sie sich nur TIOBE an, das im Dezember 2019 den zweiten Platz belegte, direkt hinter Java)
02、C++
Man kann sagen, dass C ++ eine erweiterte Version von C ist. Es wurde von Bjarne Stroustrup, einem dänischen Doktor der Philosophie (Ph.D.), entwickelt. Sein Ziel war es , die C-Sprache zu verbessern und ihr objektorientierte Fähigkeiten hinzuzufügen, ohne dabei an Geschwindigkeit oder Effizienz einzubüßen .
- C++ gilt als Sprache mittlerer Ebene , da es auf der Sprache C niedriger Ebene basiert und über einige erweiterte Funktionen verfügt.
- Gleichzeitig entwickelte sich C++ zu einer weiteren hochproduktiven Programmiersprache. Es funktioniert mit C bei der Entwicklung von Betriebssystemen und wird auch in einigen High-End-Servern und PC-Software verwendet.
- C++ kann plattformübergreifende Programme schreiben und wird in vielen Bereichen wie der Spieleentwicklung, der Systemprogrammierung usw. häufig verwendet. (Der bekannte King of Glory verwendet beispielsweise C++.)
03、C#
C# ist eine objektorientierte Programmiersprache auf hoher Ebene , die ebenfalls als Erweiterung von C erstellt wurde. Es wurde 2002 von Anders Hejlsberg, dem Leiter eines Teams bei Microsoft, entwickelt. Es basiert auf dem **.NET Framework**, sein Kern ist jedoch immer noch die C-Sprache.
- C# kompiliert Code in Byte -Code anstelle von Maschinencode (0101-Binärcode).
- Es läuft auf einer virtuellen Maschine , die Bytecode im laufenden Betrieb in Maschinencode übersetzt .
- Basierend auf der C-Sprache werden Funktionen wie Garbage Collection , nicht initialisierte Variablenprüfung , gebundene Prüfung und Typprüfung hinzugefügt.
Apropos: C# verfügt über einige Java-ähnliche Funktionen sowie JVM-Prinzipien usw.
C# wird häufiger für interne oder Unternehmensanwendungen als für kommerzielle Software verwendet. Zu finden in der clientseitigen und serverseitigen Entwicklung im .NET Framework.
Zusammenfassung der Unterschiede
C, C++ und C# sind drei verschiedene Programmiersprachen und unterscheiden sich stark in Designzielen , Funktionen und Anwendungsbereichen . So vergleichen sie:
- Programmierparadigma:
- C: C ist eine prozedurale Programmiersprache , die sich auf das Schreiben von Prozeduren und Funktionen konzentriert.
- C++: C++ ist eine Multiparadigmen-Programmiersprache , die sowohl prozedurale als auch objektorientierte Programmierung unterstützt . Es führt in die Konzepte von Klassen und Objekten ein und ermöglicht die Verwendung objektorientierter Funktionen wie Kapselung, Vererbung und Polymorphismus.
- C#: C# ist eine multiparadigmatische Programmiersprache, die hauptsächlich objektorientiert ist und auch prozedurale und generische Programmierung unterstützt. Es ist für die Interaktion mit dem .NET-Framework konzipiert und unterstützt komponentenorientierte Programmierung .
- Speicherverwaltung:
- C: In C müssen Entwickler den Speicher manuell verwalten , einschließlich der Zuweisung und Freigabe von Speicher.
- C++: C++ bietet eine automatische Speicherverwaltung , ermöglicht aber weiterhin eine manuelle Speicherverwaltung. Es führt Konstruktoren und Destruktoren ein, um den Lebenszyklus von Objekten zu verwalten.
- C#: C# läuft auf dem .NET-Framework, verfügt über einen Garbage-Collection-Mechanismus und verwaltet den Speicher automatisch . Entwickler müssen Speicher nicht manuell zuweisen oder freigeben.
- Plattformkompatibilität:
- C: C-Code weist normalerweise eine gute Plattformkompatibilität auf und kann auf mehreren Betriebssystemen kompiliert und ausgeführt werden .
- C++: Code in C++ weist ebenfalls eine gewisse Plattformkompatibilität auf, erfordert jedoch möglicherweise spezifische Anpassungen, wenn es um Aspekte wie die grafische Benutzeroberfläche (GUI) geht.
- C#: C# ist vor allem eng mit dem .NET Framework verwandt und daher häufiger in Windows-Umgebungen anzutreffen. Obwohl es über Mono und .NET Core auf anderen Plattformen ausgeführt werden kann, basiert es hauptsächlich auf Windows .
- Kompilierungs- und Ausführungsmethode:
- C: C-Code wird normalerweise in Maschinencode kompiliert und direkt auf der Hardware ausgeführt .
- C++: C++-Code wird ebenfalls in Maschinencode kompiliert , es werden jedoch objektorientierte Konzepte eingeführt, die die Generierung von Klassen und objektbezogenen Strukturen ermöglichen.
- C#: C#-Code wird in eine Zwischensprache (IL) kompiliert und dann in der .NET-Laufzeitumgebung ausgeführt. Dieser Ansatz ermöglicht einen plattformübergreifenden Betrieb und einige Optimierungen zur Laufzeit.
- Anwendungsbereiche:
- C: C wird häufig für die Programmierung auf Systemebene, eingebettete Systeme und leistungskritische Anwendungen verwendet.
- C++: C++ wird häufig in der Spieleentwicklung, bei grafischen Schnittstellenanwendungen, bei der Systementwicklung und bei Anwendungen verwendet, die eine hohe Leistung erfordern.
- C#: C# wird häufig in Windows-Desktopanwendungen, Webanwendungen, mobilen Anwendungen und Unternehmensanwendungen verwendet, die in die .NET-Plattform integriert sind.
Insgesamt hängt die Wahl der zu verwendenden Sprache von den Anforderungen des Projekts, der Erfahrung des Entwicklers und den Eigenschaften der Anwendung ab. C eignet sich für die Low-Level-Entwicklung, C++ bietet abstraktere und objektorientiertere Funktionen und C# eignet sich für die fortgeschrittene Anwendungsentwicklung auf der .NET-Plattform.