Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.62
fom4ik
49 / 7 / 1
Регистрация: 07.11.2010
Сообщений: 52
09.03.2012, 18:03     глобальные переменные #1
Пробовал объявить глобальные переменные следующим образом:

в заголовочном файле 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.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.03.2012, 18:03     глобальные переменные
Посмотрите здесь:

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

go, я так и сделал
Байт
 Аватар для Байт
13941 / 8772 / 1220
Регистрация: 24.12.2010
Сообщений: 15,872
09.03.2012, 19:38     глобальные переменные #6
fom4ik, Вот нашел сам.
Ошибка повторения имен переменных при использовании глобальной переменной
Причем это был ответ на твой же топик
Yandex
Объявления
09.03.2012, 19:38     глобальные переменные
Ответ Создать тему
Опции темы

Текущее время: 04:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru