Könnt ihr mir den Unterschied zwischen ihnen sagen?
Übrigens, gibt es so etwas wie C++-Bibliothek oder C-Bibliothek?
HauptID
Könnt ihr mir den Unterschied zwischen ihnen sagen?
Übrigens, gibt es so etwas wie C++-Bibliothek oder C-Bibliothek?
Johannes Schaub – litb
Das C++ Standard Library
und C Standard Library
sind die Bibliotheken, die der C++- und der C-Standard definieren und die C++- und C-Programmen zur Verwendung bereitgestellt werden. Das ist eine gemeinsame Bedeutung dieser Wörter, ich habe noch nie eine andere Definition davon gesehen, und C++ selbst definiert es so:
Das C++-Standardbibliothek bietet ein erweiterbares Framework und enthält Komponenten für: Sprachunterstützung, Diagnose, allgemeine Dienstprogramme, Zeichenfolgen, Gebietsschemata, Container, Iteratoren, Algorithmen, Numerik und Eingabe/Ausgabe. Die Sprachunterstützungskomponenten werden von bestimmten Teilen der Sprache C++ benötigt, wie z. B. Speicherzuordnung (5.3.4, 5.3.5) und Ausnahmeverarbeitung (Klausel 15).
C++ Runtime Library
und C Runtime Library
werden nicht so gleichermaßen verwendet. Einige sagen, eine Laufzeitbibliothek sei der Teil, den ein Programm verwendet Laufzeit (wie der Code, der implementiert std::type_info
oder der Code, der Signal-Handler unterstützt) im Gegensatz zu Sachen, die sie nur zur Kompilierzeit verwenden (wie Makrodefinitionen). Andere Leute sagen, dass eine Laufzeitbibliothek eine ist, die zur Ladezeit dynamisch mit einem Programm verknüpft wird, im Gegensatz zu statisch zur Kompilierzeit, obwohl diese Verwendung sehr selten ist. Gemeinsam genutzte Bibliothek oder dynamisch verknüpfte Bibliothek sind dafür bessere Begriffe.
C++ Library
und C Library
sind sehr weit gefasste Begriffe. Sie bedeuten lediglich, dass eine Bibliothek in C++ und/oder C geschrieben ist.
Das Obige ist nicht nur auf C++ und/oder C beschränkt. Es gibt Python-Bibliotheken und es gibt Python Standardbibliothek zu.
Es ist erwähnenswert, dass GLIBC, das Ding, das die C-Standardbibliothek (printf usw.) unter Linux implementiert, eine gemeinsam genutzte Bibliothek ist, die zur Laufzeit geladen wird (zumindest ist dies die übliche Vorgehensweise). Dadurch können Fehlerbehebungen / Verbesserungen für die C-Standardbibliothek systemweit ausgerollt werden, ohne dass absolut alles auf dem System neu kompiliert werden muss; ein Update legt einfach eine andere .so-Datei ab.
– Bazza
2. Juli 2017 um 6:22 Uhr
@bazza Was ist mit anderen Betriebssystemen wie Windows und macOS? Dies scheint der einzig gültige Weg zu sein, C(++) Runtime lib auszuliefern.
– Minh Nghĩa
4. August um 2:59
Entsprechend https://en.wikibooks.org/wiki/C_Programming/Standard_libraries#Common_support_libraries, gibt es einen sehr wichtigen Unterschied zwischen der Standardbibliothek und der Laufzeitbibliothek. Während die Standardbibliothek Funktionen definiert, die dem Programmierer (immer) zur Verfügung stehen (aber nicht Teil der (ursprünglichen) Spezifikation der Programmiersprache, zumindest in C), enthält die Laufzeitbibliothek Funktionen, die notwendig sind, um ein Programm tatsächlich auszuführen einer bestimmten Plattform (und sind plattformspezifisch / anbieterspezifisch).
Beispielsweise ist printf() Teil der C-Standardbibliothek, während der Programmstart (der für den Programmierer in vielen Fällen unsichtbar ist) in der Laufzeitbibliothek implementiert ist. So könnten Sie beispielsweise ein C-Programm schreiben, das die Standardbibliothek nicht verwendet, aber Sie benötigen immer die Laufzeitbibliothek, da Ihr Programm sonst nicht ausgeführt werden könnte. Aber um ehrlich zu sein, würde dies wenig nützen, weil ein C-Programm ohne die Standardbibliothek keine Ein-/Ausgabe machen könnte, also könnte es Ihnen nichts über seine beeindruckenden Ergebnisse sagen.
Was zu Verwirrung hinsichtlich des Unterschieds zwischen diesen beiden führt, ist:
C++-Standardbibliothek ist ein Begriff, um die Standardbibliothek zu definieren, die ein mindestens konformer Compiler/Toolset haben sollte. Die C++-Laufzeitbibliothek ist die Bibliothek, die mit dem Toolset geliefert wird, um Standardbibliotheksfunktionen bereitzustellen, und wahrscheinlich einige interne Dinge, die der Compiler möglicherweise benötigt. Tatsächlich sind diese Begriffe oft austauschbar.
Die Standardbibliothek ist also der Standard, wie er vom C++-Komitee definiert wurde, und die Laufzeitbibliothek ist die Implementierung dieses Standards?
– Fijoy Vadakkumpadan
16. März 2016 um 15:40 Uhr
Die Laufzeit ist viel breiter als die Standardbibliothek und enthält viele betriebssystemspezifische Aufrufe von betriebssystemspezifischen Diensten. Diese Begriffe sollten nicht untereinander ausgetauscht werden.
– 8znr
8. August 2017 um 8:08 Uhr
8znr
C/C++-Standardbibliothek ist eine Implementierung aller erforderlichen Funktionalitäten, die erforderlich sind, um die Anforderungen des ISO-C/C++-Standards zu erfüllen. (Wikipedia-Definition von a C++-Standardbibliothek)
EIN Laufzeitbibliothek ist jede Implementierung einer Reihe von Funktionalitäten, die normalerweise in Form von SDK angeboten werden und installiert oder statisch verknüpft werden müssen, damit ein Programm, das dieses SDK verwendet, ausgeführt werden kann und alles hat, was es zur Verwendung dieses SDK benötigen könnte. Aus diesen Gründen ist die Laufzeitbibliothek normalerweise eng mit dem verwendeten SDK und der verwendeten Compiler-Version verbunden. (Wikipedia-Definition eines Generikums Laufzeitbibliothek)
Die AC/C++-Laufzeitbibliothek muss daher alle Funktionalitäten enthalten, die erforderlich sind, um auszuführen, was von der Standardbibliothek gefordert wird (nur Header-Funktionalitäten der spezifischen Standardbibliotheksimplementierung können ausgeschlossen werden, da sie innerhalb des Programms selbst aufgelöst werden) sowie eine Reihe von angebotenen Funktionalitäten durch das SDK der jeweiligen Implementierung (auch hier können Funktionalitäten, die nur als Header angeboten werden, ausgeschlossen werden).
Vor MSVC140: Die aktuelle Microsoft VC++ Runtime hatte früher eine installierbare Version der C/C++ Runtime (VCRedist), diese Version war für alle Betriebssysteme gleich.
Ab MSVC140: Ab dem nächsten MSVC140-Compiler wurde die Runtime-Bibliothek in zwei Teile aufgeteilt:
Hier ist ein Link zur MS C Runtime-Referenzdokumentation. Hier ist ein Link zur MS C Runtime-Downloadseite und Installationsanweisungen.
Die C++-Standardbibliothek besteht aus zwei Hauptteilen, nämlich der Standard Template Library (STL) und der Laufzeitbibliothek. STL wird nur in Header-Dateien implementiert, während eine Implementierung der Laufzeitbibliothek sowohl Header-Dateien als auch Binärdateien (dh .lib- und .dll-Dateien auf Windows-Plattformen) enthält.
frei
Ein weiterer Aspekt, vielleicht nicht genau der Fall von C/C++, aber laut Wikipedia: Laufzeitbibliothek
In der Computerprogrammierung ist eine Laufzeitbibliothek (RTL) eine Reihe von Routinen auf niedriger Ebene, die von einem Compiler verwendet werden, um einige der Verhaltensweisen einer Laufzeitumgebung aufzurufen, indem Aufrufe an die Laufzeitbibliothek in eine kompilierte ausführbare Binärdatei eingefügt werden.
Um es kurz zu machen:
Die Laufzeitbibliothek soll vom Compiler verwendet werden, und die Standardbibliothek soll vom Programmierer verwendet werden.
Sept
Die C++-Laufzeitbibliothek enthält Funktionen und Objekte, die in C++ bereitgestellt werden, z. B. cout, fstream usw.
Die C-Laufzeitbibliothek enthält C-Funktionen wie printf, scanf, fopen usw.
Sie sind Teil der Standardbibliothek, nicht der Laufzeitbibliothek.
– in3xes
9. Februar 2018 um 15:57 Uhr
siehe Detail unter: letrungthang.blogspot.com/2011/04/… hoffe hilfreich
– Benutzer712290
17. April 2011 um 16:28 Uhr
Es ist nur eine Namenskonvention. Die ISO-C-Bibliothek, die ein C oder C++-Compiler muss wird als C-Laufzeitbibliothek bezeichnet. Die ISO-C++-Standardbibliothek (STL) ist eine reine C++-Bibliothek, die Teile der C-Laufzeitbibliothek verwendet. Die STL-Bibliothek ist nicht zwingend erforderlich.
– Michael Roy
26. Juni 2017 um 13:09 Uhr