olea
5 / 5 / 2
Регистрация: 30.01.2012
Сообщений: 153
|
|
1 | |
Объявление глобальных переменных в проекте Dev C++17.12.2013, 01:51. Просмотров 1349. Ответов 19
Метки нет Все метки)
(
Доброй ночи всем!
Подскажите, пожалуйста, как правильно объявить глобальные переменные в проекте. У меня есть один файл, например, для ввода данных, а другой из обрабатывает и 3 - главный, в котором собраны все вызывающиеся функции. Сначала вынесла переменные в data.h и подключала ко всем файлам - компилятор ругается, мол, несколько раз декларирую переменные. подключив данный файл только к одному файлу, компилятор не ругается, но в других фалах обрабатывать полученные данные невозможно. Есть ли вариант, как организовать это дело? Или может лучше сделать ввод всех локальных данных в главном файле, и передавать их в параметрах вызываемых функций?
0
|
|
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
|
17.12.2013, 01:51 |
Ответы с готовыми решениями:
19
Объявление глобальных переменных
Описание глобальных переменных
поиск глобальных переменных с++ |
alsav22
5463 / 4858 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
|
17.12.2013, 03:03 | 2 |
Объявите их в каком-либо .cpp файле. В других файлах, там где нужны, объявите их как extern.
0
|
abit
275 / 274 / 83
Регистрация: 03.02.2013
Сообщений: 786
|
|
17.12.2013, 03:07 | 3 |
объявлять три способа: самый простой - инклуд того h-файла сложнее - static-переменная ещё сложнее - extern-переменная в cpp такие вещи точно не стоит пихать
0
|
alsav22
5463 / 4858 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
|
17.12.2013, 03:12 | 4 |
0
|
17.12.2013, 03:12 | |
abit
275 / 274 / 83
Регистрация: 03.02.2013
Сообщений: 786
|
|
17.12.2013, 03:15 | 5 |
ответ на вопрос автора
есть варианты лучше?
0
|
alsav22
5463 / 4858 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
|
17.12.2013, 03:18 | 6 |
0
|
abit
275 / 274 / 83
Регистрация: 03.02.2013
Сообщений: 786
|
|
17.12.2013, 03:22 | 7 |
0
|
alsav22
5463 / 4858 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
|
17.12.2013, 03:24 | 8 |
0
|
abit
275 / 274 / 83
Регистрация: 03.02.2013
Сообщений: 786
|
|
17.12.2013, 03:35 | 9 |
Ещё скажите что вы этим пользуетесь, у меня сейчас скажем проект, где пара клиент-сервер неазависимо живёт, не приложу ума как сделать им неименованное пространство имён, да даже сам термин "неименованнное пространство имён" звучит странно, не находите?
0
|
alsav22
|
17.12.2013, 03:49
#10
|
0
|
alsav22
|
17.12.2013, 04:09
#11
|
0
|
gray_fox
|
17.12.2013, 04:20
#12
|
0
|
alsav22
5463 / 4858 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
|
17.12.2013, 15:48 | 13 |
При чём здесь, вообще, statiс? Это сделает глобальные переменные видимыми в других файлах?
0
|
olea
5 / 5 / 2
Регистрация: 30.01.2012
Сообщений: 153
|
|
17.12.2013, 22:15 [ТС] | 14 |
я попробовала static - не делает переменные видимыми и в других файлах. просто значение переменной сохраняется между вызовами функций.
в итоге решила все-таки отказаться от глобальных переменных - буду передавать переменные в функции по параметрам.
0
|
alsav22
5463 / 4858 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
|
17.12.2013, 22:17 | 15 |
0
|
olea
5 / 5 / 2
Регистрация: 30.01.2012
Сообщений: 153
|
|
17.12.2013, 22:21 [ТС] | 16 |
знаю, что использовать глобальные переменные не айс, поэтому и предпочла передачу по параметрам
0
|
alsav22
|
17.12.2013, 22:28
#17
|
0
|
olea
5 / 5 / 2
Регистрация: 30.01.2012
Сообщений: 153
|
|
17.12.2013, 22:44 [ТС] | 18 |
alsav22, попробовала, сделала с помощью extern, работает, но как правильно подключить файл data.h с описанием переменных - подключает только к одному файлй cpp, если к нескольким подключаю, то выдает ошибку
0
|
alsav22
5463 / 4858 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
|
18.12.2013, 00:14 | 19 |
Как сделали? Файлы можете выложить? Трудно что-либо советовать вслепую...
Добавлено через 2 минуты Нельзя делать объявления (они же определения) переменных в заголовочных файлах, которые подключаются к нескольким .cpp файлам. Добавлено через 40 минут У "Л.Лафоре. ООП в С++" есть глава: "Многофайловые программы". Почитайте, возможно вопрос прояснится.
1
|
olea
5 / 5 / 2
Регистрация: 30.01.2012
Сообщений: 153
|
|
18.12.2013, 16:07 [ТС] | 20 |
alsav22, спасибо большое за книгу. Разобралась. Все стало на свои места!
0
|
18.12.2013, 16:07 | |
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
|
18.12.2013, 16:07 |
Инициализация глобальных переменных Использование глобальных переменных - моветон ли? Исправить без использования глобальных переменных Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |