![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Дублирование переменных в юнитах
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.
Когда кажется, креститься надо.