В чем разница между заголовочным файлом и библиотекой? - PullRequest
68 голосов
/ 29 мая 2009

Мне сложно понять, как работает компилятор. У меня много трудностей с этим, но, в частности, я постоянно путаю заголовки и библиотеки. Если бы кто-то мог кое-что прояснить, это было бы здорово.

Ответы [ 16 ]

1 голос
/ 29 мая 2009

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

0 голосов
/ 21 февраля 2019

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

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

0 голосов
/ 17 июня 2018

Вы можете рассмотреть этот пример, чтобы понять - Math.h - это файл заголовка, который включает прототип для вызовов функций, таких как sqrt(), pow() и т. Д., Тогда как libm.lib, libmmd.lib, libmmd.dll являются некоторыми из математические библиотеки. Проще говоря, заголовочный файл похож на визитную карточку, а библиотеки похожи на реального человека, поэтому мы используем визитную карточку (файл заголовка), чтобы связаться с реальным человеком (библиотека).

0 голосов
/ 18 июня 2017

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

0 голосов
/ 03 марта 2017

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

0 голосов
/ 29 мая 2009

Если перефразировать классическую шутку, то разница в том, что в библиотеке есть файл заголовка, а в файле заголовка нет библиотеки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...