![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Гость_Vld |
|
|||
|
Unregistered |
Предположим, у меня в проекте есть три файла:
- proga1.cpp - proga2.cpp - proga.h В cpp-файлы я добавил "#include proga.h". Никак не могу разобраться, как мне вынести в h-файл простую глобальную переменную var. Если я пишу <int var;> компилятор ругается на повторное определение, если я пишу <extern int var;>, компилятор ругается что переменная объявлена, но не определена. А мне хотелось бы каким-нибудь макаром засунуть переменную в этот заголовочный файл и сразу с ней работать, а не потеть / вспоминать, что де она не определена, да где (в каком файле то бишь) надо не забыть ее определить. Помогите составить код заголовочного файла. Пробовал что-то типа
- и все-равно не работает…, как быть? |
|||
|
||||
| Mayk |
|
|||
![]() ^аВаТаР^ сообщение>> ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2616 Регистрация: 22.5.2005 Где: за границей разум а Репутация: 45 Всего: 134 |
proga.h:
extern int var; proga.cpp: int var;
Если переменная объявлена в файле a.h, то логично предположить, что она определена в a.cpp. Ну или сделай globalvars.cpp и в них вставляй int barы всякие. -------------------- Здесь был кролик. Но его убили. Человеки < кроликов, йа считаю. |
|||
|
||||
| Guest |
|
|||
|
Unregistered |
отдельный cpp-файл для глобальных переменных, это конечно мысль, хотя и не очень мне нравиться (зачем плодить лишние cpp-шки), но почему у меня не срабатывает блок #else. Получается, первый cpp должен вызвать определение PROGA_H и выполнить весь код до #else, второй cpp активирует выполнение блока #else. И никаких конфликтов, но это не срабатывает
|
|||
|
||||
| Mayk |
|
|||
![]() ^аВаТаР^ сообщение>> ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2616 Регистрация: 22.5.2005 Где: за границей разум а Репутация: 45 Всего: 134 |
Не вижу причин по которым он должен срабатывать. Код в студию. -------------------- Здесь был кролик. Но его убили. Человеки < кроликов, йа считаю. |
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 16 Всего: 98 |
объявление в .cpp для глобальной переменной должно быть в любом случае
Добавлено @ 14:34 это и будет ее определением -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| Mad |
|
||||||||||
|
Опытный ![]() ![]() Профиль Группа: Эксперт Сообщений: 656 Регистрация: 18.10.2004 Где: Одесса Репутация: 7 Всего: 19 |
ничего подобного как при компиляции первого, так и при компиляции второго файла, до момента подгрузки proga.h файла у тебя PROGA_H неопределен (эти определения не глобальные) как вариант : proga.h
proga.cpp
proga1.cpp
|
||||||||||
|
|||||||||||
| Гость_Vld |
|
|||
|
Unregistered |
Спасибо, будем пробовать!
|
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |