Либо напиши что-нибудь стоящее, либо сделай что-нибудь достойное написания

По сути, библиотека — это набор функций.

  • Зачем вообще использовать библиотеки?

Важно использовать библиотеки в c, потому что это позволяет нам активировать использование нескольких функций, сделав один вызов из файла .head.

  • Как они работают?

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

Связывание, как я описал, является статическим связыванием. Это означает, что каждый исполняемый файл содержит в себе все библиотеки (наборы функций), которые ему необходимы. Это пустая трата места, так как есть много программ, которым могут понадобиться одни и те же функции. В этом случае в памяти было бы больше копий одной и той же функции. Динамическое связывание предотвращает это, связывая во время выполнения, а не во время компиляции. Это означает, что все функции находятся в специальном пространстве памяти, и каждая программа может получить к ним доступ, не имея их нескольких копий. Это уменьшает объем требуемой памяти.

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

Статическая библиотека — это файл .lib, который будет связан внутри вашего исполняемого файла и не изменится со временем.

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

  • Как их создать (только для Linux)?

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

  • gcc -fPIC -c *.c
  • gcc -shared -o (имя моей библиотеки).so *.o
  • Зачем вообще использовать библиотеки?

Важно использовать библиотеки в c, потому что это позволяет нам активировать использование нескольких функций, сделав один вызов из файла .head.

Различия между статическими и динамическими библиотеками и каковы преимущества и недостатки каждой из них: