Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Дублирование переменных в юнитах


LightGreen ©   (2010-02-13 00:34:00) 

У меня есть юнит:

unit A;

interface
var GlobalVar: Integer;
...

Я его включаю в два других юнита в раздел implementation.
Когда запускаю программу есть подозрение, что создаётся две разные переменные GlobalVar. Опять же я по аналогии с C++ пытаюсь найти что-то вроде extern. Как предотвратить дублирование статических переменных?


KilkennyCat   (2010-02-13 13:29:00) [1]


> Плохиш ©   (13.02.10 13:27) [11]

Пробовал... но аскорбики и водка не помогают, ни раздельно, ни в сочетании.


Плохиш   (2010-02-13 13:27:00) [2]


> KilkennyCat ©   (13.02.10 13:24) [10]

Лечиться не пробовал?


KilkennyCat   (2010-02-13 13:24:00) [3]


> Плохиш ©   (13.02.10 13:00) [9]

интуиция, опыт и пессимизм. я вот, просто включаю компьютер - и то возникает подозрение...


Плохиш   (2010-02-13 13:00:00) [4]


> Когда запускаю программу есть подозрение

На чём основано сиё подозрение?


oldman   (2010-02-13 12:54:00) [5]


> Когда запускаю программу есть подозрение, что создаётся
> две разные переменные GlobalVar.


Простой вопрос - в каком юните переменная создается - A, B или С?
Или ты думаешь, если в трех юнитах прописано uses Buttons, создается три комплекта переменных?


Anatoly Podgoretsky   (2010-02-13 11:48:00) [6]

> LightGreen  (13.02.2010 00:34:00)  [0]

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


LightGreen   (2010-02-13 11:03:00) [7]

Спасибо за развёрнутый ответ


KilkennyCat   (2010-02-13 10:36:00) [8]

ну дык, я и ответил, в смысле, что компилятор в этом отношении лучше.


Германн   (2010-02-13 02:47:00) [9]


> KilkennyCat ©   (13.02.10 01:55) [2]
>
> компилятор не крестится, он обычно просто ругается.

А я не про компилятор говорил, а про программиста (прошу извинить меня за неприличное слово).
:)


Игорь Шевченко   (2010-02-13 02:12:00) [10]


> Как предотвратить дублирование статических переменных?


Это не статическая переменная. Она объявлена (и реально размещена) один раз в unit A, а в остальных юнитах используется аналогично extern в C.


KilkennyCat   (2010-02-13 01:55:00) [11]

компилятор не крестится, он обычно просто ругается.


Германн   (2010-02-13 00:43:00) [12]


> Когда запускаю программу есть подозрение, что создаётся
> две разные переменные GlobalVar.

Когда кажется, креститься надо.


Наверх

Титульная страница Поиск, карта сайта Написать письмо