Подтвердить что ты не робот

Разница между библиотекой времени выполнения C/С++ и стандартной библиотекой C/С++

Можете ли вы, ребята, сказать мне разницу между ними?

Кстати, есть ли что-то, называемое библиотекой С++ или библиотекой C?

4b9b3361

Ответ 1

C++ Standard Library и C Standard Library - это библиотеки, которые определяются стандартами С++ и C, которые предоставляются программам С++ и C для использования. Это общий смысл этих слов, я никогда не видел другого определения этого, и сам С++ определяет его как это:

Стандартная библиотека С++ предоставляет расширяемую структуру и содержит компоненты для: поддержки языка, диагностики, общих утилит, строк, локалей, контейнеров, итераторов, алгоритмов, чисел и ввода/вывода. Компоненты поддержки языка требуются некоторыми частями языка С++, такими как распределение памяти (5.3.4, 5.3.5) и обработка исключений (раздел 15).

C++ Runtime Library и C Runtime Library не используются одинаково. Некоторые говорят, что библиотека времени исполнения является частью, которую использует программа во время выполнения (например, код, реализующий std::type_info или обработчики сигналов, поддерживающих код), в отличие от того, что они используют только во время компиляции (например, определения макросов). Другие люди говорят, что библиотека времени исполнения - это та, которая динамически связана с программой во время загрузки, а не статически во время компиляции, хотя это использование очень редко. разделяемая библиотека или динамически связанная библиотека - лучшие условия для этого.

C++ Library и C Library - очень широкие термины. Они просто означают, что библиотека написана на С++ и/или C.

Вышеуказанное не ограничивается только С++ и/или C. Существуют библиотеки python и есть также python Стандартная библиотека.

Ответ 2

Согласно https://en.wikibooks.org/wiki/C_Programming/Standard_libraries#Common_support_libraries, существует очень важное различие между стандартной библиотекой и библиотекой времени выполнения. Хотя Стандартная библиотека определяет функции, которые (всегда) доступны для программиста (но не являются частью (начальной) спецификации языка программирования, по крайней мере на C), библиотека времени выполнения содержит функции, необходимые для фактического запуска программы на данной платформы (и специфичны для конкретной платформы/поставщика).

Например, printf() является частью стандартной библиотеки C, а запуск программы (который во многих случаях невидим для программиста) реализуется в библиотеке времени выполнения. Например, вы можете написать C-программу, которая не использует стандартную библиотеку, но вам всегда нужна библиотека времени выполнения, поскольку в противном случае ваша программа не может быть выполнена. Но, честно говоря, это было бы малопригодным, потому что C-программа без стандартной библиотеки не могла выполнять ввод/вывод, чтобы она не могла рассказать вам о ее впечатляющих результатах.

Что приводит к путанице в отношении разницы между этими двумя:

  • В каждом случае требуется/используется библиотека времени выполнения, а в (почти) всех случаях используется стандартная библиотека. Кроме того, стандартная библиотека может зависеть от библиотеки времени выполнения и, скорее всего, разработана одним и тем же поставщиком. Поэтому различие не ясно и в большинстве случаев не является необходимым.
  • Microsoft поместила библиотеку C Standard Library и C Runtime Library и просто называет ее C-библиотекой времени выполнения.

Ответ 3

Стандартная библиотека С++ - это термин для определения стандартной библиотеки, которую должен иметь минимальный соответствующий компилятор/набор инструментов. Библиотека времени выполнения С++ - это библиотека, поставляемая с набором инструментов для обеспечения стандартной библиотечной функциональности и, возможно, некоторые внутренние компоненты, которые могут потребоваться компилятору. Фактически, эти термины часто взаимозаменяемы.

Ответ 4

Вступление

Стандартная библиотека C/C++ - это любая реализация всего необходимого набора функций, необходимых для выполнения требований стандарта ISO C/C++. (Определение стандартной библиотеки C++ из Википедии)

Библиотека времени выполнения - это любая реализация набора функций, которые обычно предлагаются в форме SDK, которые необходимо установить или статически связать, чтобы позволить программе, использующей этот SDK, иметь все, что может понадобиться для использования этого SDK. По этим причинам Runtime Library обычно строго связана с используемым SDK и используемой версией компилятора. (Определение википедии универсальной библиотеки времени выполнения)

C/C++ Runtime Library

Таким образом, библиотека времени выполнения AC/C++ должна содержать все функциональные возможности, необходимые для выполнения того, что требуется Стандартной библиотекой (функциональные возможности только заголовка конкретной реализации Стандартной библиотеки могут быть исключены, поскольку они разрешены в самой программе), а также набор функциональные возможности, предлагаемые SDK конкретной реализации (опять же, функциональные возможности, предлагаемые только в качестве заголовка, могут быть исключены).

Корпус Microsoft

До MSVC140: в недавней Microsoft V C++ Runtime использовалась устанавливаемая версия C/C++ Runtime (VCRedist), эта версия была одинаковой для всех операционных систем.

Начиная с MSVC140: начиная со следующего компилятора MSVC140, библиотека времени выполнения была разделена на две части:

  • UCRT (Universal C Runtime): поставляется с ОС и связана с ней, распространяется через обновления или образы ОС
  • VCRedist: часть, которая, как ожидается, изменится в зависимости от используемого компилятора и которая распространена среди различных версий ОС (управляется, как до MSVC140).

Вот ссылка на справочную документацию MS C Runtime. Вот ссылка на страницу загрузки MS C Runtime и инструкции по установке.

Ответ 5

Стандартная библиотека С++ состоит из двух основных частей: стандартной библиотеки шаблонов (STL) и библиотеки времени исполнения. STL реализуется только в файлах заголовков, тогда как реализация библиотеки времени выполнения содержит как заголовочные файлы, так и двоичные файлы (то есть файлы .lib и .dll на платформах Windows).

Ответ 6

Библиотека времени выполнения С++ содержит функции и объекты, поставляемые на С++, такие как cout, fstream и т.д.

C библиотека времени выполнения содержит функции C, такие как printf, scanf, fopen и т.д.

Ответ 7

Стандартная библиотека представляет собой определенный набор определенных имен и заголовков, как определенный в стандартном документе С++, библиотека времени выполнения представляет собой бинарный материал, который используется как часть скомпилированной программы, но не включены в ваши исполняемые программы, потому что это так часто необходимо.

Вместо этого эти части функциональности включены на хост-машину (хотя вам может потребоваться попросить ваших клиентов установить обновленный если они имеют более старый пакет обновления), поэтому они включаются в ваша программа только в режиме "runtime".

Ref. Ссылки по теме:

http://msdn2.microsoft.com/en-us/library/cscc687y(VS.80).aspx

http://msdn2.microsoft.com/en-us/library/59ey50w6(VS.80).aspx

Ответ 8

Другой аспект, может быть, не совсем в случае с C/C++, но согласно википедии: библиотека времени выполнения

В компьютерном программировании библиотека времени выполнения (RTL) - это набор низкоуровневых подпрограмм, используемых компилятором для вызова некоторых поведений среды выполнения путем вставки вызовов библиотеки времени выполнения в скомпилированный исполняемый двоичный файл.

Быть кратким:
Библиотека времени выполнения предназначена для использования компилятором, а стандартная библиотека предназначена для использования программистом.