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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
olea
5 / 5 / 1
Регистрация: 30.01.2012
Сообщений: 153
#1

Объявление глобальных переменных в проекте Dev C++ - C++

17.12.2013, 01:51. Просмотров 914. Ответов 19
Метки нет (Все метки)

Доброй ночи всем!
Подскажите, пожалуйста, как правильно объявить глобальные переменные в проекте. У меня есть один файл, например, для ввода данных, а другой из обрабатывает и 3 - главный, в котором собраны все вызывающиеся функции.
Сначала вынесла переменные в data.h и подключала ко всем файлам - компилятор ругается, мол, несколько раз декларирую переменные. подключив данный файл только к одному файлу, компилятор не ругается, но в других фалах обрабатывать полученные данные невозможно.
Есть ли вариант, как организовать это дело? Или может лучше сделать ввод всех локальных данных в главном файле, и передавать их в параметрах вызываемых функций?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.12.2013, 01:51     Объявление глобальных переменных в проекте Dev C++
Посмотрите здесь:

Объявление глобальных переменных - C++
#include "stdafx.h" #include <conio.h> #include <stdio.h> void main (int x, int y) { printf ("x="); scanf_s ("x=&d",...

Как избавиться от глобальных переменных в многофайловом проекте на С++? - C++
Некоторые глобальные переменные можно заменить на глобальные константы. Долго промучилась с проектом, но на попытках избавления от...

поиск глобальных переменных с++ - C++
Есть задачка, которую не могу решить. Дано 9000 .cpp файлов, которые являют собой полноценные программы со своими мейнами. Нужно найти для...

Определение глобальных переменных - C++
Доброго времени суток! Интересует следующий вопрос - Возможно ли определение глобальных переменных в теле подпрограмм или классов? ...

Инициализация глобальных переменных - C++
Требуется инициализировать 2 массива и 2 переменные, которые используются в 2-х функциях, с клавиатуры, но без передачи их в качестве...

Описание глобальных переменных - C++
помогите, плиз, с такой незадачей.. в каком из файлов нужно обозначить глобальные переменные, чтоб код нормально читался. вот что у меня...

Использование глобальных переменных - моветон ли? - C++
Ребят, очень часто вижу как отцы С++, когда проверяют чей-то код и обнаруживают там глобальные переменные, заявляют, что это не хорошо, что...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
17.12.2013, 03:03     Объявление глобальных переменных в проекте Dev C++ #2
Цитата Сообщение от olea Посмотреть сообщение
Подскажите, пожалуйста, как правильно объявить глобальные переменные в проекте.
Объявите их в каком-либо .cpp файле. В других файлах, там где нужны, объявите их как extern.
abit
260 / 259 / 33
Регистрация: 03.02.2013
Сообщений: 709
17.12.2013, 03:07     Объявление глобальных переменных в проекте Dev C++ #3
Объявите их в каком-либо .cpp файле
исключительно в h-файлах надо такие вещи делать
объявлять три способа:
самый простой - инклуд того h-файла
сложнее - static-переменная
ещё сложнее - extern-переменная
в cpp такие вещи точно не стоит пихать
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
17.12.2013, 03:12     Объявление глобальных переменных в проекте Dev C++ #4
Цитата Сообщение от abit Посмотреть сообщение
исключительно в h-файлах надо такие вещи делать
объявлять три способа:
самый простой - инклуд того h-файла
К нескольким .cpp? Что ТС и сделала
Цитата Сообщение от olea Посмотреть сообщение
Сначала вынесла переменные в data.h и подключала ко всем файлам - компилятор ругается, мол, несколько раз декларирую переменные.
abit
260 / 259 / 33
Регистрация: 03.02.2013
Сообщений: 709
17.12.2013, 03:15     Объявление глобальных переменных в проекте Dev C++ #5
ответ на вопрос автора
Подскажите, пожалуйста, как правильно объявить глобальные переменные в проекте
static-переменная, это идеал, просто потому-что её можно поместить в нужный класс и не засорять пространство имён
есть варианты лучше?
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
17.12.2013, 03:18     Объявление глобальных переменных в проекте Dev C++ #6
Это совет для кого?
Цитата Сообщение от abit Посмотреть сообщение
исключительно в h-файлах надо такие вещи делать
объявлять три способа:
самый простой - инклуд того h-файла
abit
260 / 259 / 33
Регистрация: 03.02.2013
Сообщений: 709
17.12.2013, 03:22     Объявление глобальных переменных в проекте Dev C++ #7
Цитата Сообщение от alsav22 Посмотреть сообщение
Это совет для кого?
домохозяйкам на заметку
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
17.12.2013, 03:24     Объявление глобальных переменных в проекте Dev C++ #8
Цитата Сообщение от abit Посмотреть сообщение
static-переменная, это идеал, просто потому-что её можно поместить в нужный класс и не засорять пространство имён
есть варианты лучше?
Есть. Неименованное пространство имён.
abit
260 / 259 / 33
Регистрация: 03.02.2013
Сообщений: 709
17.12.2013, 03:35     Объявление глобальных переменных в проекте Dev C++ #9
Цитата Сообщение от alsav22 Посмотреть сообщение
Есть. Неименованное пространство имён.
Ещё скажите что вы этим пользуетесь, у меня сейчас скажем проект, где пара клиент-сервер неазависимо живёт, не приложу ума как сделать им неименованное пространство имён, да даже сам термин "неименованнное пространство имён" звучит странно, не находите?
alsav22
17.12.2013, 03:49
  #10

Не по теме:

Цитата Сообщение от abit Посмотреть сообщение
да даже сам термин "неименованнное пространство имён" звучит странно, не находите?
Может только для вас?
С.Прата, по-видимому, так не считает.

alsav22
17.12.2013, 04:09
  #11

Не по теме:

Цитата Сообщение от abit Посмотреть сообщение
static-переменная, это идеал,
...

gray_fox
17.12.2013, 04:20
  #12

Не по теме:

Цитата Сообщение от abit Посмотреть сообщение
Ещё скажите что вы этим пользуетесь, у меня сейчас скажем проект, где пара клиент-сервер неазависимо живёт, не приложу ума как сделать им неименованное пространство имён, да даже сам термин "неименованнное пространство имён" звучит странно, не находите?
Тем не менее это считается более предпочтительным способом для internal linkage в С++, причём уже давно.

alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
17.12.2013, 15:48     Объявление глобальных переменных в проекте Dev C++ #13
Цитата Сообщение от abit Посмотреть сообщение
сложнее - static-переменная
При чём здесь, вообще, statiс? Это сделает глобальные переменные видимыми в других файлах?
olea
5 / 5 / 1
Регистрация: 30.01.2012
Сообщений: 153
17.12.2013, 22:15  [ТС]     Объявление глобальных переменных в проекте Dev C++ #14
я попробовала static - не делает переменные видимыми и в других файлах. просто значение переменной сохраняется между вызовами функций.
в итоге решила все-таки отказаться от глобальных переменных - буду передавать переменные в функции по параметрам.
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
17.12.2013, 22:17     Объявление глобальных переменных в проекте Dev C++ #15
Цитата Сообщение от olea Посмотреть сообщение
я попробовала static
А другое попробовать? Никак?
olea
5 / 5 / 1
Регистрация: 30.01.2012
Сообщений: 153
17.12.2013, 22:21  [ТС]     Объявление глобальных переменных в проекте Dev C++ #16
знаю, что использовать глобальные переменные не айс, поэтому и предпочла передачу по параметрам
alsav22
17.12.2013, 22:28
  #17

Не по теме:

Цитата Сообщение от olea Посмотреть сообщение
знаю, что использовать глобальные переменные не айс
В общем-то да, но чтобы знать как сделать, может когда понадобится.

olea
5 / 5 / 1
Регистрация: 30.01.2012
Сообщений: 153
17.12.2013, 22:44  [ТС]     Объявление глобальных переменных в проекте Dev C++ #18
alsav22, попробовала, сделала с помощью extern, работает, но как правильно подключить файл data.h с описанием переменных - подключает только к одному файлй cpp, если к нескольким подключаю, то выдает ошибку
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
18.12.2013, 00:14     Объявление глобальных переменных в проекте Dev C++ #19
Цитата Сообщение от olea Посмотреть сообщение
попробовала, сделала с помощью extern
Как сделали? Файлы можете выложить? Трудно что-либо советовать вслепую...

Добавлено через 2 минуты
Цитата Сообщение от olea Посмотреть сообщение
файл data.h с описанием переменных - подключает только к одному файлй cpp, если к нескольким подключаю, то выдает ошибку
Нельзя делать объявления (они же определения) переменных в заголовочных файлах, которые подключаются к нескольким .cpp файлам.

Добавлено через 40 минут
У "Л.Лафоре. ООП в С++" есть глава: "Многофайловые программы". Почитайте, возможно вопрос прояснится.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.12.2013, 16:07     Объявление глобальных переменных в проекте Dev C++
Еще ссылки по теме:

Ошибка в сравнении глобальных переменных в функциях - C++
Здравствуйте! Я всю жизнь писал на Pascal и с С столкнулся впервые пару дней назад, когда начал эксперементировать с Arduino. Поискал...

Исправить без использования глобальных переменных - C++
#include<iostream> using namespace std; int a,n,maximum=-1000,x; void zapros() { cout<<"Vvedite razmer massiva"<<endl; } ...

Вынос глобальных переменных в отдельный файл - C++
Всем привет! Вопрос такой - сижу разбираюсь с вынесением функций в отдельные файлы. Что удалось выяснить - подключая через #include файл...

Массив (переписать без глобальных переменных) - C++
Помогите написать ету програму без глобальных переменных #include <cstdlib> #include <iostream> using namespace std; ...

Программа с использованием глобальных переменных. Найти ошибку - C++
Уважаемые форумчане, помогите, пожалуйста, найти ошибку в простой программе. Хочу создать глобальные переменные, которые можно использовать...


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

Или воспользуйтесь поиском по форуму:
olea
5 / 5 / 1
Регистрация: 30.01.2012
Сообщений: 153
18.12.2013, 16:07  [ТС]     Объявление глобальных переменных в проекте Dev C++ #20
alsav22, спасибо большое за книгу. Разобралась. Все стало на свои места!
Yandex
Объявления
18.12.2013, 16:07     Объявление глобальных переменных в проекте Dev C++
Ответ Создать тему
Опции темы

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