![]() |
|
Модераторы: bsa |
![]()
|
|
| Vetos |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 312 Регистрация: 4.4.2005 Репутация: нет Всего: 4 |
Здравствуйте!
Есть у меня несколько хедеров которые используют одни и тежи include, получается что моя прога подключает их несколько раз тем самым увеличивая объем приложения или нет? -------------------- Строить нужно так, чтоб никто не сломал! А ломать, чтоб никто не знал 8) :ne_huliganit |
|||
|
||||
| and277 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 9.4.2009 Репутация: нет Всего: нет |
Имхо так не должно быть.
|
|||
|
||||
| jonie |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 6 Всего: 118 |
Да, при компиляции препроцессор пытается включить текст хедеров, но в них может быть нечто вроде:
либо
В общем это защита от повторного включения. -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
||||
|
|||||
| and277 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 9.4.2009 Репутация: нет Всего: нет |
jonie, Поясни про эти куски кода. Где это можно поглядеть ? Это уже в объектном файле?
|
|||
|
||||
| Gordon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 459 Регистрация: 9.7.2006 Репутация: 1 Всего: 6 |
Это что-то вроде запрета повторного включения... -------------------- |
|||
|
||||
| and277 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 9.4.2009 Репутация: нет Всего: нет |
Gordon, все понял. Стормозил.
|
|||
|
||||
| Vetos |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 312 Регистрация: 4.4.2005 Репутация: нет Всего: 4 |
jonie, т.е. мне в каждом хедере надо написать так
-------------------- Строить нужно так, чтоб никто не сломал! А ломать, чтоб никто не знал 8) :ne_huliganit |
|||
|
||||
| Tobuk |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 20.11.2008 Репутация: нет Всего: нет |
Да, только вместо FILE1 имя твоего хедера. |
||||
|
|||||
| Vetos |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 312 Регистрация: 4.4.2005 Репутация: нет Всего: 4 |
[яуоте=Тобук, 25.7.2009, 19:11, пост1929176]Да, только вместо ФИЛЕ1 имя твоего хедера. [/яуоте]
Ясно, спасибо!!! Там походу
-------------------- Строить нужно так, чтоб никто не сломал! А ломать, чтоб никто не знал 8) :ne_huliganit |
|||
|
||||
| Gordon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 459 Регистрация: 9.7.2006 Репутация: 1 Всего: 6 |
Да,
-------------------- |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 52 Всего: 211 |
пара замечаний Во первых - двойные подчеркивания убрать, во вторых - лучше писать так
с #pragma once программа будет компилироваться быстрее, но она не входит в стандарт C++ (т.е. может не поддерживаться некоторыми компиляторами). И все же, большинство компиляторов #pragma once поддерживают, а для тех, которые не поддерживают написан #ifndef. Это сообщение отредактировал(а) azesmcar - 25.7.2009, 20:58 |
|||
|
||||
| jonie |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 6 Всего: 118 |
по крайней мере так пишут в boost, а значит это работает везде) -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
||||
|
|||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 52 Всего: 211 |
Насчет двойного подчеркивания - это не стереотипы, а этот вариант тоже вполне возможен, но по стандарту незнакомые #pragma игнорируются, так что можно писать с чистой совестью, ничего страшного не будет (максимум warning). Добавлено через 3 минуты и 15 секунд оп - ошибочка вышло, беру свой совет назад, до #ifndef -а ничего писать не надо. мой совет остается в силе, но уже в таком виде
ну или с проверкой, как написал jonie. Это сообщение отредактировал(а) azesmcar - 25.7.2009, 21:08 |
|||
|
||||
| and277 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 9.4.2009 Репутация: нет Всего: нет |
Кому интересно почитайте еще эту тему
|
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |