2017-01-22 19 views
2

Wikipedia говорит, что «Newlib - это стандартная реализация библиотеки C, предназначенная для использования во встроенных системах». Хорошо, но где я могу найти последнюю версию canon? то есть верную полную версию.Что такое newlib на языке C?

Также существуют другие библиотеки для языка C? Не могли бы вы дать мне номера ISO для них?

Я пытаюсь понять, какие типы/версии библиотеки существуют для языка C, поэтому я знаю, что они имеют в виду, когда я сталкиваюсь с ними в будущем.

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

+3

Newlib - это * реализация * the * стандартная библиотека. – GSerg

+1

«Я сталкиваюсь с ними в будущем», просто используйте реализацию вашего компилятора, как правило, достаточно. – Stargateur

+3

В стандарте C описывается набор функций, которые должны предоставить все совместимые компиляторы C. Это «стандартная библиотека C». Фактическая * реализация * самой библиотеки, и особенно ее имя, не имеет большого значения. Если у вас есть библиотека, которая реализует «стандартную библиотеку C», это *** стандартная библиотека *** C. –

ответ

2

Это одна из многих реализаций стандартной библиотеки C. Вот некоторые другие реализации:

Это прекрасное сравнение 4 различных реализаций. Вам может быть проще понять, почему люди создают свои собственные реализации: http://www.etalabs.net/compare_libcs.html

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

Python, например, имеет различные варианты реализации - см. Этот ответ: https://stackoverflow.com/a/17130986/4694621.

+0

aha, hmmm вы могли бы кратко описать, что подразумевается под реализацией. Поскольку мы пишем реализацию библиотеки в коде C, зачем нужны разные реализации? Мы можем просто использовать разные компиляторы для разных процессоров, чтобы скомпилировать один и тот же C-код для работы на разных процессорах, зачем тогда нужны разные реализации? Стандартная библиотека, безусловно, должна была бы соответствовать всем ее требованиям? – quantum231

+0

@ quant231 Например, вы создаете продукт, и вы не хотите использовать какой-либо код GPL. В этом случае GNU libc не является для вас вариантом. Второй пример может быть кодированием суперзащищенного приложения, и вы должны убедиться, что используемый вами libc достаточно безопасен для вас - в этом случае вам может понадобиться выбрать реализацию с кодовой базой, достаточно малой для аудита и просмотрите его перед использованием. –

+0

@ quant231 Посмотрите на ссылку, которую я опубликовал: http://www.etalabs.net/compare_libcs.html. Существует таблица, объясняющая различия между 4 реализациями. Вы можете легко понять, что это такое. –

 Смежные вопросы

  • Нет связанных вопросов^_^