Вы можете сказать мне разницу между ними?
Кстати, есть ли что-то, что называется библиотекой C++ или библиотекой C?
Это всего лишь соглашение об именах. Библиотека ISO C, с которой поставляется компилятор C или же C++ должен, называется библиотекой времени выполнения C. Стандартная библиотека ISO C++ (STL) - это библиотека только для C++, которая использует части библиотеки времени выполнения C. Библиотека STL не является обязательной.





Стандартная библиотека C++ - это термин, обозначающий стандартную библиотеку, которую должен иметь минимально соответствующий компилятор / набор инструментов. Библиотека времени выполнения C++ - это библиотека, поставляемая с набором инструментов для обеспечения стандартных функций библиотеки и, возможно, некоторых внутренних вещей, которые могут понадобиться компилятору. Фактически, эти термины часто взаимозаменяемы.
Итак, стандартная библиотека - это стандарт, определенный комитетом C++, а библиотека времени выполнения - это реализация этого стандарта?
среда выполнения намного шире, чем стандартная библиотека, и включает в себя множество специфичных для ОС вызовов конкретных служб ОС. Эти термины не следует менять местами.
Библиотека времени выполнения C++ содержит функции и объекты, предоставленные в C++, такие как cout, fstream и т. д.
Библиотека времени выполнения C содержит функции C, такие как printf, scanf, fopen и т. д.
Они являются частью стандартной библиотеки, а не библиотеки времени выполнения.
C++ Standard Library и C Standard Library - это библиотеки, определенные стандартами C++ и C, которые предоставляются программам на C++ и C. Это обычное значение этих слов, я никогда не видел другого его определения, а сам C++ определяет его так:
The C++ Standard Library provides an extensible framework, and contains components for: language support, diagnostics, general utilities, strings, locales, containers, iterators, algorithms, numerics, and input/output. The language support components are required by certain parts of the C++ language, such as memory allocation (5.3.4, 5.3.5) and exception processing (clause 15).
C++ Runtime Library и C Runtime Library используются не так одинаково. Некоторые говорят, что библиотека времени выполнения - это часть, которую программа использует в время выполнения (например, код, реализующий std::type_info или код, поддерживающий обработчики сигналов), в отличие от того, что они используют только во время компиляции (например, определения макросов). Другие люди говорят, что библиотека времени выполнения - это библиотека, которая динамически связана с программой во время загрузки, а не статически во время компиляции, хотя такое использование очень редко. общая библиотека или динамически подключаемая библиотека - лучшие термины для этого.
C++ Library и C Library - очень широкие термины. Они просто означают, что библиотека написана на C++ и / или C.
Вышеупомянутое не ограничивается только C++ и / или C. Существуют библиотеки python, а также python Стандартная библиотека.
Стоит отметить, что GLIBC, то, что реализует стандартную библиотеку C (printf и т. д.) В Linux, представляет собой разделяемую библиотеку, которая загружается во время выполнения (по крайней мере, это обычный способ работы). Это позволяет вносить исправления / улучшения в стандартную библиотеку C в масштабе всей системы без необходимости перекомпилировать абсолютно все в системе; обновление просто записывает другой файл .so.
Стандартная библиотека C++ состоит из двух основных частей, а именно стандартной библиотеки шаблонов (STL) и библиотеки времени выполнения. STL реализован только в файлах заголовков, в то время как реализация библиотеки времени выполнения содержит как файлы заголовков, так и двоичные файлы (т.е. файлы .lib и .dll на платформах Windows).
Согласно https://en.wikibooks.org/wiki/C_Programming/Standard_libraries#Common_support_libraries, существует очень важное различие между стандартной библиотекой и библиотекой времени выполнения. В то время как Стандартная библиотека определяет функции, которые (всегда) доступны программисту (но не являются частью (начальной) спецификации языка программирования, по крайней мере, в C), библиотека времени выполнения содержит функции, которые необходимы для фактического запуска программы на на данной платформе (и зависят от платформы / поставщика).
Например, printf () является частью стандартной библиотеки C, а запуск программы (который во многих случаях невидим для программиста) реализован в библиотеке времени выполнения. Так, например, вы можете написать C-программу, которая не использует стандартную библиотеку, но вам всегда нужна библиотека времени выполнения, потому что в противном случае ваша программа не может быть выполнена. Но, честно говоря, от этого было бы мало толку, потому что программа C без стандартной библиотеки не могла выполнять ввод / вывод, поэтому она не могла рассказать вам что-то о своих впечатляющих результатах.
Что приводит к путанице относительно разницы между этими двумя:
Стандартная библиотека C / C++ - это любая реализация всего необходимого набора функций, необходимых для выполнения требований стандарта ISO C / C++. (Определение Стандартная библиотека C++ из Википедии)
Библиотека времени исполнения - это любая реализация набора функций, которые обычно предлагаются в форме SDK, которые необходимо установить или статически связать, чтобы позволить программе, использующей этот SDK, работать со всем, что может потребоваться для использования этого SDK. По этим причинам библиотека времени выполнения обычно строго связана с используемым SDK и используемой версией компилятора. (Определение универсального Библиотека времени исполнения в Википедии)
Таким образом, библиотека времени выполнения AC / C++ должна содержать все функции, необходимые для выполнения того, что требуется Стандартной библиотекой (функции только для заголовков конкретной реализации стандартной библиотеки могут быть исключены, поскольку они решаются в самой программе), а также набор предлагаемых функций. SDK конкретной реализации (опять же, функции, предлагаемые только в виде заголовка, могут быть исключены).
До MSVC140: недавняя среда выполнения Microsoft VC++ использовалась для установки устанавливаемой версии среды выполнения C / C++ (VCRedist), эта версия была одинаковой для всех операционных систем.
Начиная с MSVC140:, начиная со следующего компилятора MSVC140, библиотека времени выполнения была разделена на две части:
Вот ссылка на справочную документацию MS C Runtime. Вот ссылка на страницу загрузки MS C Runtime и инструкции по установке.
Стандартная библиотека - это особый набор определенных имен и заголовков как определенная в стандартном документе C++, библиотека времени выполнения - это капля двоичный материал, который используется как часть скомпилированной программы, но не включены в исполняемые файлы вашей программы, потому что это так часто необходимо.
Вместо этого эти функциональные возможности включены в хост-машину. (хотя вам может потребоваться попросить своих клиентов установить обновленный время выполнения, если у них есть более старый пакет обновления), поэтому они включаются в ваша программа только во время выполнения.
Ref. ссылки:
http://msdn2.microsoft.com/en-us/library/cscc687y(VS.80).aspx
http://msdn2.microsoft.com/en-us/library/59ey50w6(VS.80).aspx
Другой аспект, возможно, не совсем в случае C / C++, но согласно википедии: Библиотека времени исполнения
In computer programming, a runtime library (RTL) is a set of low-level routines used by a compiler to invoke some of the behaviors of a runtime environment, by inserting calls to the runtime library into compiled executable binary.
Чтобы быть кратким:
Библиотека времени выполнения предназначена для использования компилятором, а стандартная библиотека предназначена для использования программистом.
см. подробности по адресу: letrungthang.blogspot.com/2011/04/… надеюсь полезно