Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
vovkasm
 Аватар для vovkasm
2 / 2 / 0
Регистрация: 21.09.2013
Сообщений: 68
#1

Подключение неиспользуемых библиотек - C++

21.09.2013, 08:48. Просмотров 502. Ответов 11
Метки нет (Все метки)

Что будет, если я подключаю библиотеки, но не использую их. Какие последствия?) снизили балл за такое незнание на лабе
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
 Аватар для Croessmah
12534 / 7096 / 797
Регистрация: 27.09.2012
Сообщений: 17,504
Записей в блоге: 2
Завершенные тесты: 1
21.09.2013, 08:55     Подключение неиспользуемых библиотек #2
Цитата Сообщение от vovkasm Посмотреть сообщение
подключаю библиотеки
какие?
Tarlis
 Аватар для Tarlis
0 / 0 / 0
Регистрация: 24.02.2013
Сообщений: 12
21.09.2013, 09:19     Подключение неиспользуемых библиотек #3
Эстетика + ты используешь, то чего не знаешь/недоконцапонимаешь, следовательно, не контролируешь свой код, и если в случае чего врят ли сможешь его отладить (зря потратишь чужое время) + дополнительная нагрузка на препроцессор... Нам препод примерно так объяснял...
Croessmah
Модератор
Эксперт CЭксперт С++
 Аватар для Croessmah
12534 / 7096 / 797
Регистрация: 27.09.2012
Сообщений: 17,504
Записей в блоге: 2
Завершенные тесты: 1
21.09.2013, 09:21     Подключение неиспользуемых библиотек #4
Цитата Сообщение от Tarlis Посмотреть сообщение
дополнительная нагрузка на препроцессор
Каким макаром?
OhMyGodSoLong
~ Эврика! ~
 Аватар для OhMyGodSoLong
1242 / 991 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
21.09.2013, 09:26     Подключение неиспользуемых библиотек #5
Цитата Сообщение от Croessmah Посмотреть сообщение
Каким макаром?
Легко. Утверждение про препроцессор — это плод заблуждения о том, что строка #include <something> подключает библиотеку.
Croessmah
Модератор
Эксперт CЭксперт С++
 Аватар для Croessmah
12534 / 7096 / 797
Регистрация: 27.09.2012
Сообщений: 17,504
Записей в блоге: 2
Завершенные тесты: 1
21.09.2013, 09:31     Подключение неиспользуемых библиотек #6
Цитата Сообщение от OhMyGodSoLong Посмотреть сообщение
#include <something> подключает библиотеку.
Но, думаю, ТС имеет ввиду именно библиотеки, а не включение файлов препроцессором.

Но надо бы уточнить так ли это, плюс узнать какие библиотеки имеются ввиду.
vovkasm
 Аватар для vovkasm
2 / 2 / 0
Регистрация: 21.09.2013
Сообщений: 68
21.09.2013, 10:24  [ТС]     Подключение неиспользуемых библиотек #7
объясняю всё

Есть модуль который отрисовывает квадрат с помощью GDI.
Подключаю библиотеки widnows.h и windowsx.h

Есть модуль который считывает данные в структуры POINT, HBRUSH, HPEN и в этом модуле тоже подключены вышеупомянутые библиотеки. Но одна из них не нужна. Вот и хочу узнать, что такого в том что я подключаю библиотеку, которая не нужна.
Tulosba
:)
Эксперт С++
4384 / 3227 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
21.09.2013, 11:05     Подключение неиспользуемых библиотек #8
vovkasm, *.h - это не библиотеки. Это заголовочные файлы, в которых описываются прототипы функций, в частности. Подключать те файлы, функции (или другие сущности) из которых в коде не используются, бессмысленно. Лишние строки кода, которые, впрочем, не должны сказаться на итоговой эффективности программы.
vovkasm
 Аватар для vovkasm
2 / 2 / 0
Регистрация: 21.09.2013
Сообщений: 68
21.09.2013, 11:27  [ТС]     Подключение неиспользуемых библиотек #9
Tulosba, Т.е. только лишние строки кода? тогда если я в проге, которая просто выводит слово, подключу <vector> <string> <list> <algorithm> <iostream> и т.д. ничего не измениться?

а если я генерирую 10,000,000 кодов длиной n символов и некоторыми условиями, время работы при подключении и не использовании вышеупомянутых не увеличится?
Tulosba
:)
Эксперт С++
4384 / 3227 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
21.09.2013, 11:44     Подключение неиспользуемых библиотек #10
Цитата Сообщение от vovkasm Посмотреть сообщение
Tulosba, Т.е. только лишние строки кода? тогда если я в проге, которая просто выводит слово, подключу <vector> <string> <list> <algorithm> <iostream> и т.д. ничего не измениться?
Если функция не вызывается (и это видно на этапе компиляции), ее код не попадет в итоговый бинарный файл. Конечно, если речь не о создании библиотеки

Цитата Сообщение от vovkasm Посмотреть сообщение
а если я генерирую 10,000,000 кодов длиной n символов и некоторыми условиями, время работы при подключении и не использовании вышеупомянутых не увеличится?
Не очень понятен вопрос. Если речь о том, как повлияет лишний код на процедуру сборки, то, конечно, она будет более длительной. Но не факт, что заметна на глаз.
Tarlis
 Аватар для Tarlis
0 / 0 / 0
Регистрация: 24.02.2013
Сообщений: 12
21.09.2013, 12:12     Подключение неиспользуемых библиотек #11
Цитата Сообщение от Croessmah Посмотреть сообщение
Но, думаю, ТС имеет ввиду именно библиотеки, а не включение файлов препроцессором.

Но надо бы уточнить так ли это, плюс узнать какие библиотеки имеются ввиду.
Я пока к сожалению чайник в вопросах программирования, но исходя из документации пришёл к выводу что все что я подключаю грузит препроцессор
Или я что-то недопонял?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.09.2013, 13:22     Подключение неиспользуемых библиотек
Еще ссылки по теме:

Подключение библиотек в GUI C++
C++ Подключение библиотек
Подключение своих библиотек C++
Автоматическое подключение библиотек C++
Подключение библиотек C++

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

Или воспользуйтесь поиском по форуму:
vovkasm
 Аватар для vovkasm
2 / 2 / 0
Регистрация: 21.09.2013
Сообщений: 68
21.09.2013, 13:22  [ТС]     Подключение неиспользуемых библиотек #12
Tulosba,
теперь уловил:
1. Длиннее код
2. Процедура сборки дольше, но не существенно.
3. Если функция не вызывается, то её код не компилируется(не попадает в код бинарный), а значит это просто лишняя строчка(подключения)

всё верно? есть ещё какие то дополнения по этим данным?
Yandex
Объявления
21.09.2013, 13:22     Подключение неиспользуемых библиотек
Ответ Создать тему
Опции темы

Текущее время: 16:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru