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

Вы можете сказать мне разницу между ними?

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

см. подробности по адресу: letrungthang.blogspot.com/2011/04/… надеюсь полезно

user712290 17.04.2011 20:28

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

Michaël Roy 26.06.2017 16:09
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
50
2
16 061
8
Перейти к ответу Данный вопрос помечен как решенный

Ответы 8

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

Итак, стандартная библиотека - это стандарт, определенный комитетом C++, а библиотека времени выполнения - это реализация этого стандарта?

Fijoy Vadakkumpadan 16.03.2016 18:40

среда выполнения намного шире, чем стандартная библиотека, и включает в себя множество специфичных для ОС вызовов конкретных служб ОС. Эти термины не следует менять местами.

david 08.08.2017 11:08

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

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

Они являются частью стандартной библиотеки, а не библиотеки времени выполнения.

in3xes 09.02.2018 18:57
Ответ принят как подходящий

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.

bazza 02.07.2017 09:22

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

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

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

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

  1. В каждом случае требуется / используется библиотека времени выполнения и (почти) во всех случаях используется стандартная библиотека. Кроме того, Стандартная библиотека может зависеть от библиотеки времени выполнения и, скорее всего, разрабатывается одним и тем же поставщиком. Таким образом, различие нечеткое и в большинстве случаев не требуется.
  2. Microsoft объединила стандартную библиотеку C и библиотеку времени выполнения C и называет ее просто библиотекой времени выполнения C.

Вступление

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

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

Библиотека времени выполнения C / C++

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

Дело Microsoft

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

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

  • UCRT (Universal C Runtime): поставляется с ОС и относится к ней, распространяется через обновления или образы ОС.
  • VCRedist: часть, которая, как ожидается, изменится с использованием компилятора и которая является общей для разных версий ОС (управляется, как до 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.

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

Другие вопросы по теме