Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 21.11.2011
Сообщений: 9
1

Отличие статических библиотек и header файлов

11.03.2012, 19:09. Просмотров 2161. Ответов 7
Метки нет (Все метки)

Здравствуйте. Интересно какая, по большому счету, разница между использованием статической библиотеки *.a и header-файлов *.h и в каких специфических случаях предпочтительнее пользоваться той или иной конструкцией (исключая разве что вариант, когда header файлов очень много и эстетичнее их превратить в статическую библиотеку).
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.03.2012, 19:09
Ответы с готовыми решениями:

Отличие обычных классов от статических
Чем отличаются обычных классы от статических, а именно относительно расположения в памяти: я так...

Отличие динамических и статических контролов
Почему когда я создаю статических контрол с именем допустим 'Name1', то Private Sub Name1_Click()...

Использование статических библиотек
У меня есть библиотека libcRand.a в которой определен класс cRand. Как мне теперь его использовать?...

В чем отличие динамических полей от статических?
Объясните пжслт на примере

7
бжни
2467 / 1676 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
11.03.2012, 19:12 2
статическая библиотека не участвует в компиляции, а участвует только в линковке
можно конечно писать header-based код (как в бусте), но это вообщемто сложнее, требует большее затрат времени на компиляцию и вообще это должно быть исключительно мотивировано
1
0 / 0 / 0
Регистрация: 21.11.2011
Сообщений: 9
11.03.2012, 19:23  [ТС] 3
А на последующую работу исполняемого файла это никак не влияет?? В том смысле что пусть я, к примеру, пишу поиск по двоичному дереву, описывая функцию самого поиска в первом случае в каком-то header-файле, а во втором создавая библиотеку с этой самой функцией. На выходе у меня два одиноковых бинарника, гарантированно ли, что на одних и тех же данных (пусть сколь угодно огромных) время поиска в обоих случаях будет одинаковым??

P.S. возможно этот вопрос странный
0
Псевдослучайный
1934 / 1135 / 96
Регистрация: 13.09.2011
Сообщений: 3,204
11.03.2012, 19:31 4
Не гарантировано, из хидеров компилятор может чего-нибудь заинлайнить.
1
бжни
2467 / 1676 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
11.03.2012, 19:36 5
Цитата Сообщение от NoMasters Посмотреть сообщение
Не гарантировано, из хидеров компилятор может чего-нибудь заинлайнить.
ну да, но я бы не забивал голову и писал статической/динамической библиотекой
1
0 / 0 / 0
Регистрация: 21.11.2011
Сообщений: 9
11.03.2012, 20:01  [ТС] 6
Спасибо.

Правда хотелось бы уточнить некоторый небольшой нюанс. Обращусь к предыдущему примеру. Могу ли я написать программу тестов, часть из которых бы фейлилась на первом исполняемом файле (исходный код которого включает header файл), а часть фейлилась на втором исполняемом файле (который скомпилирован с использованием статической библиотеки). Или же при таком выборе мы имеем однозначно лучший вариант для любых ситуаций.
0
Псевдослучайный
1934 / 1135 / 96
Регистрация: 13.09.2011
Сообщений: 3,204
11.03.2012, 20:23 7
Корректность кода по идее не должна зависеть от того, каким образом его собирать. Но статические библиотеки, как уже говорилось, не нужно собирать каждый раз, а динамические зачастую ещё и разделяются между запущенными процессами, экономя оперативку.
0
0 / 0 / 0
Регистрация: 21.11.2011
Сообщений: 9
11.03.2012, 20:41  [ТС] 8
Я имел ввиду пример программы. Всмысле поиск по дереву, написанный двумя разными способами.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.03.2012, 20:41

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Подключение статических библиотек в Creator
Всем доброго времени суток. Возникла необходимость подключения статических библиотек в Creator(в...

Подключение сторонних статических библиотек
Всем привет! У меня есть библиотека по базам, не суть, надо ее подключить в Визуал Студио....

Подключение скомпилированных статических библиотек с++ VS15
Решил поиграться с ncurses. До этого лишь раз пользовал её на Uvuntu. Сейчас сижу в винде....

Вопрос по теории касаемо статических библиотек *.a
Читаю исходники weechat (кто не в курсе - irc клиент). Там я заметил интересную особенность. Ну...

Скрытие warning сторонних статических библиотек в g++
Здравствуйте! Я статически подключаю библиотеку (liblibrary.a), и тут компилятор gnu g++ выдает...

Быстродействие программы при использовании статических и динамических библиотек
Всем привет! Понимаю, что вопрос простой... но не могу, не получить экспертного мнения. Правильно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.