Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Глобольние переменние 
V
    Опции темы
NOCaut
Дата 12.5.2011, 11:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 5.12.2008

Репутация: нет
Всего: 0



есть структура в модуле shm.h я обявил ее и обявил на нее указатель my_struct *tt;
есть модули 1.сpp 2.cpp к которим я подключил shm.h. Но переменную tt я невижу. Как сделать глобальную переменную для модулей
PM MAIL   Вверх
ИванМ
Дата 12.5.2011, 11:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1260
Регистрация: 19.6.2006
Где: СПб

Репутация: 3
Всего: 23



Если подключил хедер, в котором определена переменная, то должен видеть. Может ты ее определил в cpp? Если используется в нескольких модулях, надо ее объявить как extern в h и определить в cpp.

Это сообщение отредактировал(а) ИванМ - 12.5.2011, 11:08
PM MAIL   Вверх
NOCaut
Дата 12.5.2011, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 5.12.2008

Репутация: нет
Всего: 0



Цитата

надо ее объявить как extern в h и определить в cpp.

Непонял в каком h и в каком c++

Ище вот
Код

error LNK2005: "struct StructShareMem * st" (?st@@3PAUStructShareMem@@A) уже определен в MyOverlayIcon.obj


Я так понял ето из за обявления shm.h в двох юнитах.. но убрав из одного я невижу методи которие в нем описани... а оставив вот такие ерори
PM MAIL   Вверх
bsa
Дата 12.5.2011, 11:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



NOCaut, если тебе нужна глобальная переменная int x, то:
1. в каком-то *.cpp файле ты должен ее определить - добавить строку: int x;
2. в соответствующем хидере ты ее должен объявить: extern int x;
PM   Вверх
NOCaut
Дата 12.5.2011, 11:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 5.12.2008

Репутация: нет
Всего: 0



в shm.h пишу 
Код

  extern int x; 

а в модулях 1.cpp и 2.cpp подключаю
Код

 #include "shm.h" 
и пишу 
  int x <<<<< она будет глобальной для обох бнитов правильно?


PM MAIL   Вверх
bsa
Дата 12.5.2011, 11:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



NOCaut, int x; нужно написать только в одном *.cpp. Если ты напишешь в нескольких, то линкер тебя отругает.
PM   Вверх
NOCaut
Дата 12.5.2011, 11:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 5.12.2008

Репутация: нет
Всего: 0



Спасибо
PM MAIL   Вверх
RastaDja
Дата 12.5.2011, 11:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 337
Регистрация: 1.11.2010

Репутация: 3
Всего: 5



если тебе надо глобальные переменные, заведи два файла a.h и a.cpp

в a.h
Код

extern int m_iGlobal;
extern double m_dGlobal;

а в a.cpp
Код

int m_iGlobal = 0;
double m_dGlobal = 1.5;



--------------------
The more closely you look at one thing, the less closely can you see something else.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1953 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.