Обновить стандартную библиотеку C | Процедура включения собственных функций в библиотеку C | C программирование
Примечание: это вопрос, требующий информации для целей знания. Это не проблема программирования, но это интересный вопрос. Так что хотя бы прочитайте это.
Вопрос: Как можно включить его / ее собственные функции программирования в стандартную библиотеку C, такую как stdlib.h? И любой, кто изучает язык C или работает на нем, может использовать эти функции в любом месте в любое время, и в целом не нуждается в разработке.
Пример: кто-то разработал функцию с именем "FunFun" и предположил, что она делает фантастическую работу для большинства программистов. так как кто-нибудь может получить доступ к этой функции "FunFun", не разрабатывая и не включая стандартную библиотеку?
Спасибо, что читаете и думаете об этом.
2 ответа
Разумный способ приблизиться к этому - разработать стороннюю библиотеку и сделать ее доступной через Интернет с открытым исходным кодом, Github и т. Д.
Диалект GNU C является одним из таких примеров, который представляет собой набор нестандартных расширений компилятора, используемых компилятором GCC. Можно присоединиться к группе с открытым исходным кодом GCC и попытаться добавить туда новую функцию. Это по-прежнему не будет стандартной библиотекой C, но расширения GCC часто являются источником вдохновения для стандарта C, и некоторые из них (назначенные инициализаторы, гибкие члены массива, анонимная структура / объединение и т. Д.) Были перенесены в сам язык с C99 и Стандарты С11. Одна из целей GNU C состоит в том, чтобы служить экспериментальной площадкой, на которой можно опробовать новые возможности языка.
Если вы действительно хотите добавить новую функцию в стандартную библиотеку C, вам нужно присоединиться к рабочей группе ISO и убедить их, что функция должна быть добавлена к языку. Или, в качестве альтернативы, найдите члена комитета и убедите его высказаться в пользу новой функции.
Все это, конечно, при условии, что вы ветеран программирования на C, иначе никто не воспримет вас всерьез.
На ваш вопрос невозможно ответить, потому что он основан на нескольких неправильных предположениях.
Вещи как
stdlib.h
не библиотеки. Это заголовочные файлы, предназначенные для включения в вашу программу. Включение означает, что содержимое буквально вставляется в вашу программу в момент включения до фактической компиляции. Они обычно используются для объявления функций, типов, глобальных переменных и т. Д., Предоставляемых библиотекой. Фактическая библиотека затем связывается с после компиляции.Нет такой вещи, как библиотека C, а также нет такой вещи, как компилятор C. c - это язык, который указан в открытом стандарте (если вам интересно, вот последний вариант последней версии стандарта
C11
). Существует много реальных реализаций, и полная реализация состоит как минимум из компилятора и стандартной библиотеки. Конечно, вы можете реализовать свою собственную стандартную библиотеку. Это большая работа, чтобы это действительно соответствовало стандарту (вы должны были бы реализоватьprintf()
а такжеscanf()
правильно, например). С вашей собственной стандартной библиотекой вы также можете включить свои собственные расширения, но это будет означать, что люди будут использовать вашу стандартную библиотеку (вместоglibc
в системе GNU) может напрямую их использовать.Для того, чтобы функция была доступна в любой реализации C, необходимо, чтобы стандарт C указывал ее. Вы не получите новую функцию в стандарте без очень хороших рассуждений.
Поэтому, если вы хотите сделать свою собственную функцию доступной для других, делайте то, что делают все, и просто реализуйте ее в своей собственной библиотеке. Пользователи могут скачать его, включить его заголовки и ссылку на него.