Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
 Аватар для prootq
8 / 8 / 2
Регистрация: 09.06.2011
Сообщений: 72

Модуль с переменными

10.04.2012, 16:52. Показов 1342. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем добрый день.

Я чего-то подзабыл, если я хочу вынести все глобальные переменные в отдельный модуль то я в .h файле их объявляю а в cpp инициализирую, например так?
...

хэдер
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#ifndef VarH
#define VarH
 
float srafR;
float srafX;
 
float exR;
float exX;
 
float  assimR;
float  assimX;
 
float sqrtDispR;
float sqrtDispX;
int SSCounter;
 
int SCCounter;
int repCS;
int repSS;
 
float dispR;
float dispX;
 
int m,n;
int* oneKillaNumbers_for_output;
int* vert_oneKillaNumbers_for_output;
int* zeroKillaNumbers_1;
int* vert_zeroKillaNumbers_for_output;
 
int* zeroKillaNumbers_for_output;
int**    sumsColumns;
int**    sumsStrings;
int** repStringsSum ;
int**    repColumnsSum ;
int**   table_with_added_column ;
//---------------------------------------------------------------------------
#endif
его cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#pragma hdrstop
#include "Var.h"
 
srafR=0;
srafXR=0;
exR=0;
exX=0;
 
sqrtDispR=0;
sqrtDispX=0;
 
SSCounter=0;
 
dispX=0;
dispR=0;
 
assimR=0;
assimX=0;
 
repCS=0;
repSS=0;
 
zeroKillaNumbers_1= NULL;
 
vert_zeroKillaNumbers_for_output= NULL;
zeroKillaNumbers_for_output = NULL;
 
SCCounter=0;
 
m=0;
n=0;
 
oneKillaNumbers_for_output = NULL;
vert_oneKillaNumbers_for_output = NULL;
 
sumsColumns = NULL;
sumsStrings = NULL;
 
repStringsSum = NULL ;
repColumnsSum = NULL ;
table_with_added_column  = NULL;
//---------------------------------------------------------------------------
#pragma package(smart_init)
а в те cpp где к этим переменным необходимо обращаться я просто подключаю этот хэдер?Чего то компилятор материться на множественное и/или раннее объявление....
и ошибка Type name expected. Я как то не так пишу, но не помню как надо...

всем спасибо.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.04.2012, 16:52
Ответы с готовыми решениями:

Найти модуль скорости; модуль тангенциального ускорения; модуль нормального ускорения; модуль полного ускорения
1. Материальная точка движется по плоскости. Движение точки в векторном виде описывается уравнением r(t)=i * A * t^3 + j * B * t (r —...

Создать модуль DLL-модуль с классом, позволяющим запускать внешнюю программу
Как же все таки создать модуль DLL-модуль с классом, позволяющим запускать внешнюю программу. На многих форумах да и здесь находил код: ...

модуль S его перемещения, модуль средней скорости, а также среднепутевую скорость
Катер движется по озеру с постоянной по модулю скоростью 18 км/ч. Сначала в течении 1 минуты 40 секунды он идёт на север, затем, повернув...

12
 Аватар для Mr.Sandman
42 / 59 / 15
Регистрация: 19.12.2011
Сообщений: 552
10.04.2012, 16:58
C++
1
2
3
4
{
float dispR;
  float dispX; // за пределами скобок они невидны (не инициализируются)
}
C++
1
2
3
4
5
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm2 *Form2; 
float dispR;
  float dispX; // здесь их видно во всем CPP
Возможно я не о том ответил)
0
 Аватар для prootq
8 / 8 / 2
Регистрация: 09.06.2011
Сообщений: 72
10.04.2012, 17:17  [ТС]
я так понял что вообще не о том, и я даже не понял о чем
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
10.04.2012, 17:20
Так оно и есть в каждом модуле у тебя разные переменные, но с одинаковыми именами
Лучше используй слово extern
Еще если я не ошибаюсь можно использовать namespace
0
 Аватар для prootq
8 / 8 / 2
Регистрация: 09.06.2011
Сообщений: 72
10.04.2012, 17:23  [ТС]
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#ifndef VarH
#define VarH
 
extern float srafR;
extern float srafX;
extern float exR;
extern float exX;
extern float assimR;
extern float assimX;
extern float sqrtDispR;
extern float sqrtDispX;
extern int SSCounter;
extern int SCCounter;
extern int repCS;
extern int repSS;
extern float dispR;
extern float dispX;
extern int m,n;
extern int* oneKillaNumbers_for_output;
extern int* vert_oneKillaNumbers_for_output;
extern int* zeroKillaNumbers_1;
extern int* vert_zeroKillaNumbers_for_output;
extern int* zeroKillaNumbers_for_output;
extern int** sumsColumns;
extern int** sumsStrings;
extern int** repStringsSum ;
int** repColumnsSum ;
extern int** table_with_added_column ;
//---------------------------------------------------------------------------
#endif
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#pragma hdrstop
 
#include "Var.h"
#pragma package(smart_init)
 
srafR=0;
srafXR=0;
exR=0;
exX=0;
sqrtDispR=0;
sqrtDispX=0;
SSCounter=0;
dispX=0;
dispR=0;
assimR=0;
assimX=0;
repCS=0;
repSS=0;
 
zeroKillaNumbers_1= NULL;
vert_zeroKillaNumbers_for_output= NULL;
zeroKillaNumbers_for_output = NULL;
 
SCCounter=0;
 
m=0;
n=0;
 
oneKillaNumbers_for_output = NULL;
vert_oneKillaNumbers_for_output = NULL;
sumsColumns = NULL;
sumsStrings = NULL;
repStringsSum = NULL ;
repColumnsSum = NULL ;
table_with_added_column = NULL;
все равно не канает =(

Avazart, спасибо, я вот точно спользовал extern, но не помню, как точно.
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
10.04.2012, 17:42
В хедере без extern, а в модулях повторное объявление с extern-ном
1
 Аватар для prootq
8 / 8 / 2
Регистрация: 09.06.2011
Сообщений: 72
10.04.2012, 17:47  [ТС]
тема закрыта, разобрался. надо добавлять спецификацию типа и в cpp, например
C++
1
float SrafR=0;
Чтобы работало присваивание к NULL надо подключить stdlib.h

всем спасибо. Эти все дела подробно описаны у Архангельского на 40й странице.
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
10.04.2012, 17:52
Цитата Сообщение от prootq Посмотреть сообщение
srafR=0;
*srafXR=0;
exR=0;
*exX=0;
Инициализируйте переменные либо при объявлении(в хедере), либо внутри тела какой-либо функции. Нельзя выполнять такие операции в пространстве глобальной видимости.
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
10.04.2012, 18:24
Инициализируйте переменные либо при объявлении(в хедере), либо внутри тела какой-либо функции. Нельзя выполнять такие операции в пространстве глобальной видимости.
в хедере нельзя так как там
C++
1
extern float srafR;
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
10.04.2012, 19:10
Не в обиду, но чего-то я явно недопонимаю....
Цитата Сообщение от Avazart Посмотреть сообщение
В хедере без extern, а в модулях повторное объявление с extern-ном
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
10.04.2012, 19:26
file1.cpp
C++
1
int i=0;// Объявление
file2.cpp
C++
1
extern int i;// Взять из file1.cpp
file3.cpp
C++
1
extern int i;// Взять из file1.cpp
итд.
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
10.04.2012, 19:33
https://www.cyberforum.ru/post2490682.html
Читать каждый день перед сном.
1
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
10.04.2012, 19:51
В хедере без extern, а в модулях повторное объявление с extern-ном
Да согласен как-то неправильно звучит.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.04.2012, 19:51
Помогаю со студенческими работами здесь

CMA ARDO DMPA модуль-центрифуга, сервисный модуль ДМПА
обслуживаемых Электроника ДМПА на стол Мне нужно, чтобы центрифуги для двигателя , с которой для подключения контактов вместе C4...

Для чего в этой комплектации модуль коммутатора и модуль администрирования?
- Блейд-шасси IBM BladeCenter E - 1шт - Блейд-сервер IBM BladeCenter HS22 - 14 шт: - Модуль коммутатора Cisco Intelligent Gigabit...

Поставил 3-й модуль памяти, комп видит только один модуль
Проблема такая, в материнке было 2 модуля Самсунг DDR3 по 2гб каждый(2 синих слота), решил расширить, докупил еще одну оперативку на 4 гб...

Стир.маш. Ariston Hotpoint WMSG605BUZ модуль Arcadia, Привезли только модуль
Ariston Hotpoint WMSG605BUZ модуль Arcadia.На пластике модуля Cod:21501120901 SW:160108 S/n1225600945.Был дохлый блок питания я...

Создать модуль, и программу которая присоед-ет модуль и выдает подпрограммы раз за разом
unit leoro; interface Type A=array of integer; var i,j,k:integer; x,y,z:A; p:real; ...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru