|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
06.08.2015, 12:24 | #1 |
Форумчанин
Регистрация: 07.08.2011
Сообщений: 576
|
порядок #include
скажите есть ли разница в порядке подключения фалов?
например Код:
Код:
|
06.08.2015, 12:29 | #2 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,342
|
Зависит от файлов.
Для одних есть, для других нет. |
06.08.2015, 12:32 | #3 |
Форумчанин
Регистрация: 07.08.2011
Сообщений: 576
|
А можно подробнее? где про это написано? Я в литературе такого не видел.
|
06.08.2015, 13:01 | #4 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,342
|
Нигде.
#include просто вставляет файл на место самого инклуда. Компилятору пофиг что лежит внутри и что из этого выйдет. Системные файлы обычно можно вставлять в любом порядке, но это не значит, что это верно для всех файлов. Все зависит от содержимого файла. |
06.08.2015, 15:52 | #5 |
Заблокирован
Регистрация: 06.02.2011
Сообщений: 1,999
|
|
06.08.2015, 16:01 | #6 |
gamer
Участник клуба
Регистрация: 09.05.2015
Сообщений: 1,550
|
У меня имеет значение. Однажды мне понадобилось добавить библиотеку математических функций "math.h". Это было то ли в файле класса объекта, то ли вида.
Так вот, когда я вставлял его первой строкой, программа не компилировалась. Методом тыка узнал, что вставлять надо второй строкой (или позже; там было ещё четыре заголовочных файла "*.h", добавляемых по умолчанию мастером).
мой канал на Ютубе: youtube.com/@games-zz3ju/videos/
мой канал на Рутубе: rutube.ru/channel/31423139/videos/ В ожидании Кеши... |
06.08.2015, 16:42 | #7 | ||
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
Цитата:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
||
06.08.2015, 17:55 | #8 | |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
Цитата:
Код:
следовательно, если будет Код:
и аналогично, когда наоборот. как вы сами считаете есть разница? часто одни хэдэры цепляют другие. а те - третие. и может получится, что один и тот же хэдэр пытались прицепить по нескольку раз. и как бы нет нужды подключать одно и тоже по 10 раз. что бы этого не происходило, используют так называется "гварды" (стражники). простейший пример гварда: в начале любого хэдэра писать: Код:
если ранее он уже был подставлен. таким образом, в зависимости от самого содержимого файла, и от наличия в нем гварда, иногда разница есть, чаще - нету. считается, что хороший код - когда разницы нет. например, стандартая библиотека - подрубай что хочешь и как хочешь. а вот код, когда разница есть - нужно отрывать руки. исключение составляют "предварительно скомпилированные заголовки", либо весьма специфичные файлы (всякие там трюки на препроцессоре). резюмируя: будет разница или нет, зависит от прямоты рук программиста. |
|
06.08.2015, 18:12 | #9 |
Форумчанин
Регистрация: 07.08.2011
Сообщений: 576
|
тогда если я подключу несколько классов унаследованных от QDialog у меня несколько раз будет повторятся код из класса QDialog. Правильно я понял?
|
06.08.2015, 20:32 | #10 |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
include | Gtnz8 | Общие вопросы C/C++ | 3 | 02.11.2013 11:24 |
Include | Abdukhafiz | ASP.NET | 0 | 29.12.2011 17:32 |
include в include | xap4o | PHP | 4 | 02.09.2010 12:21 |
dropdown + include | wcp | HTML и CSS | 0 | 07.09.2009 20:40 |
include | odi_noki | Помощь студентам | 14 | 12.07.2008 13:04 |