Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.62
fom4ik
49 / 7 / 1
Регистрация: 07.11.2010
Сообщений: 52
#1

глобальные переменные - C++

09.03.2012, 18:03. Просмотров 1712. Ответов 5
Метки нет (Все метки)

Пробовал объявить глобальные переменные следующим образом:

в заголовочном файле head.h
C++
1
2
3
4
#ifndef DF_H
#define DF_H
//объявления переменнын
#endif // DF_H
В файлах functions.cpp и main.cpp я написал строчку #include "head.h". Компилятор мне выдал ошибку, что переменные объявлены 2 раза. Разве такое объявление переменных как у меня не дожно позволять переменным объявиться несколько раз. Компилятор gcc.
http://www.cyberforum.ru/cpp-beginners/thread612759.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.03.2012, 18:03
Я подобрал для вас темы с готовыми решениями и ответами на вопрос глобальные переменные (C++):

Глобальные переменные
Здравствуйте, только начал изучать глобальные переменные/разбитие на функции и...

Глобальные переменные
Здравствуйте! Возникла видимо классическая проблема, но перечитав кучу...

Глобальные переменные
Доброго времени суток всем. У меня следующая проблема: объявляю глобально...

глобальные переменные
здравствуйте, я только начал изучать C++, в книге Штидта Г. есть такой код, он...

Глобальные переменные
Видел в некоторых проектах создают глобальные переменные 1 вариант: int...

5
Xind
275 / 148 / 25
Регистрация: 05.11.2011
Сообщений: 425
Записей в блоге: 1
09.03.2012, 18:14 #2
functions.cpp и main.cpp компилируются в отдельные файлы. Константа-сторож не поможет, т.к. действует в одном исходном файле. В итоге переменные законно объявляются там и там.
1
Байт
Эксперт C
17758 / 11783 / 2448
Регистрация: 24.12.2010
Сообщений: 23,685
09.03.2012, 18:16 #3
fom4ik, Эта конструкция блокирует только повторное подключение хедера в одном исходнике. Следовательно, head.h подключается и в main.cpp и function.cpp
Мои советы.
1. Поймите, что препроцессор осуществляет только текстовую обработку каждого исходного файла, совершенно независимо от других.
2, Найдите в одном из недавних моих постов (не глубже недели) предложения по решению этого конфликта.
1
go
Эксперт С++
3636 / 1368 / 243
Регистрация: 16.04.2009
Сообщений: 4,527
09.03.2012, 19:15 #4
fom4ik, объявляйте переменные в functions.cpp, например. А в main.cpp объявите их используя ключевое слово extern
1
fom4ik
49 / 7 / 1
Регистрация: 07.11.2010
Сообщений: 52
09.03.2012, 19:19  [ТС] #5
Байт, сейчас поищу.

go, я так и сделал
0
Байт
Эксперт C
17758 / 11783 / 2448
Регистрация: 24.12.2010
Сообщений: 23,685
09.03.2012, 19:38 #6
fom4ik, Вот нашел сам.
http://www.cyberforum.ru/cpp-beginners/thread382154.html
Причем это был ответ на твой же топик
0
09.03.2012, 19:38
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.03.2012, 19:38
Привет! Вот еще темы с решениями:

Глобальные переменные
Как в C++ завести глобальную (общую для функции и самой программы) переменную?

Глобальные переменные
Я хочу использовать глобальную переменную, определённую в main, в своих...

Глобальные переменные
Подскажите пожалуйста, почему данные в глобальной переменной перезаписываются,...

Глобальные переменные
Я правильно понимаю: "в c++ использовать глобальные переменные не безопасно, т....


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru