Можете ли вы, ребята, сказать мне разницу между ними?
Кстати, есть ли что-то, называемое библиотекой С++ или библиотекой C?
Можете ли вы, ребята, сказать мне разницу между ними?
Кстати, есть ли что-то, называемое библиотекой С++ или библиотекой C?
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 Стандартная библиотека.
Согласно 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. По этим причинам Runtime Library обычно строго связана с используемым SDK и используемой версией компилятора. (Определение википедии универсальной библиотеки времени выполнения)
Таким образом, библиотека времени выполнения AC/C++ должна содержать все функциональные возможности, необходимые для выполнения того, что требуется Стандартной библиотекой (функциональные возможности только заголовка конкретной реализации Стандартной библиотеки могут быть исключены, поскольку они разрешены в самой программе), а также набор функциональные возможности, предлагаемые SDK конкретной реализации (опять же, функциональные возможности, предлагаемые только в качестве заголовка, могут быть исключены).
До MSVC140: в недавней Microsoft V C++ Runtime использовалась устанавливаемая версия C/C++ Runtime (VCRedist), эта версия была одинаковой для всех операционных систем.
Начиная с MSVC140: начиная со следующего компилятора MSVC140, библиотека времени выполнения была разделена на две части:
Вот ссылка на справочную документацию MS C Runtime. Вот ссылка на страницу загрузки MS C Runtime и инструкции по установке.
Стандартная библиотека С++ состоит из двух основных частей: стандартной библиотеки шаблонов (STL) и библиотеки времени исполнения. STL реализуется только в файлах заголовков, тогда как реализация библиотеки времени выполнения содержит как заголовочные файлы, так и двоичные файлы (то есть файлы .lib и .dll на платформах Windows).
Библиотека времени выполнения С++ содержит функции и объекты, поставляемые на С++, такие как cout, fstream и т.д.
C библиотека времени выполнения содержит функции C, такие как printf, scanf, fopen и т.д.
Стандартная библиотека представляет собой определенный набор определенных имен и заголовков, как определенный в стандартном документе С++, библиотека времени выполнения представляет собой бинарный материал, который используется как часть скомпилированной программы, но не включены в ваши исполняемые программы, потому что это так часто необходимо.
Вместо этого эти части функциональности включены на хост-машину (хотя вам может потребоваться попросить ваших клиентов установить обновленный если они имеют более старый пакет обновления), поэтому они включаются в ваша программа только в режиме "runtime".
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++, но согласно википедии: библиотека времени выполнения
В компьютерном программировании библиотека времени выполнения (RTL) - это набор низкоуровневых подпрограмм, используемых компилятором для вызова некоторых поведений среды выполнения путем вставки вызовов библиотеки времени выполнения в скомпилированный исполняемый двоичный файл.
Быть кратким:
Библиотека времени выполнения предназначена для использования компилятором, а стандартная библиотека предназначена для использования программистом.