Откуда берется среда выполнения C / C ++? - PullRequest
0 голосов
/ 30 апреля 2020

Я недавно читал, что среда выполнения C / C ++ в windows состоит из 2 частей. Первый - V C Runtime, а другой - Universal C Runtime. Насколько я понимаю, универсальная C среда выполнения является частью ОС.

Вопрос 1: Так идет ли установка ОС по умолчанию? Или есть ли у Universal C Runtime что-то для Windows SDK, т.е. Windows SDK обеспечивает UCRT?

Вопрос 2. Если UCRT является частью ОС, то что обеспечивает V C Время выполнения?

Кроме того, я прочитал, что набор инструментов платформы содержит компилятор, компоновщик и стандартные библиотеки.

Вопрос 3. Значит, набор инструментов платформы не имеет ничего общего со средой выполнения C / C ++ (которая разделена на 2 части)? Можем ли мы сказать, что набор инструментов платформы и среда выполнения C / C ++ не входят как единое целое в windows ОС?

Пожалуйста, уточните.

1 Ответ

0 голосов
/ 30 апреля 2020

"Universal C Runtime" - это, в лучшем случае, своеобразная терминология.

Компилятор C поставляется с стандартной библиотекой , которую вы связываете со своим кодом. Стандартная библиотека предоставляет все функции, требуемые стандартом C. Разработчик библиотеки должен выяснить, как их реализовать.

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

Разные операционные системы имеют разные способы предоставления этих услуг, поэтому стандартная библиотека должна быть написана по-разному для разных операционных систем. Но вызовы операционной системы не обязательно записываются в C, поэтому «Universal C Runtime» не совсем подходит. Например, в давние времена MSDOS вызывать операционную систему означало задавать некоторые значения в регистрах процессора, а затем генерировать программное прерывание. Как правило, это не код C, хотя некоторые библиотеки времени выполнения предоставляют слой кода, так что вы можете сделать это без необходимости писать собственный код сборки.

...