Вниз
Скачать: CL | DM;

Авто инициализация переменной целого типа   Найти похожие ветки 

 
Nan   (2006-01-19 09:07) [0]

Как в Delphi сделать так, чтобы переменная целого типа принимала
значение равное 0 автоматически при ее объявлении ?


 
Vemer ©   (2006-01-19 09:16) [1]

Var
MyInteger : Integer = 0;
Only for global.


 
Nan   (2006-01-19 09:21) [2]

Это я знаю, а можно ли сделать, чтобы это происходило автоматом в том числе и с локальными переменными ?


 
MBo ©   (2006-01-19 09:31) [3]

{$J+}//Project-Options-Compiler-Assignable Typed Constants
procedure TForm13.FormCreate(Sender: TObject);
const
 A:Integer=0;
begin
 A:=5;
 Caption:=IntToStr(A);
end;


 
Юрий Зотов ©   (2006-01-19 09:33) [4]

1. Глобальные переменные (и поля объектов) и без того автоматически инициализируются нулями.

2. Локальные переменные не инициализируются.


 
evvcom ©   (2006-01-19 12:03) [5]


> MBo ©   (19.01.06 09:31) [3]

Лень проверять, но интересно, эта константа в стек ляжет или в "глобальную" область?
А вообще сама идея записи в константу ... Борланд извратился.


 
begin...end ©   (2006-01-19 12:10) [6]

> evvcom ©   (19.01.06 12:03) [5]

> Лень проверять, но интересно, эта константа в стек ляжет
> или в "глобальную" область?

Конечно же, НЕ в стек. При выходе в подпрограммы она должна сохранять своё значение.


 
begin...end ©   (2006-01-19 12:12) [7]

> в подпрограммы

из подпрограммы


 
Digitman ©   (2006-01-19 12:24) [8]


> константа в стек ляжет или в "глобальную" область?


Константа никуда не "ляжет".

"Ложатся" переменные, а не константы.


 
Digitman ©   (2006-01-19 12:25) [9]


> Константа никуда не "ляжет".


НЕтипизированная, имелось ввиду.


 
evvcom ©   (2006-01-19 12:39) [10]


> "Ложатся" переменные, а не константы.

Спасибо, я это знал.

> НЕтипизированная, имелось ввиду.

Вот именно. В данном-то случае разговор идет о типизированной. См. [3]. Я так и написал "эта константа".

> Конечно же, НЕ в стек.

Вот и я так думаю. Т.е. для разных объектов класса TForm13 (13 - намек на глючность :) сего подхода?) будет выполнена инициализация константы единожды (или всякий раз? нет надо все же посмотреть, интересный пример), в одном объекте она изменится, а в другом инитное значение уже метод не увидит. Не, сейчас проверю...


 
evvcom ©   (2006-01-19 12:45) [11]


> НЕ в стек
> в одном объекте она изменится, а в другом инитное значение
> уже метод не увидит

Так и есть. Точно Форма №13. С чертями дружна :)



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.027 c
2-1137198189
STK
2006-01-14 03:23
2006.02.05
Создание программы дозвона


15-1137434498
Cerberus
2006-01-16 21:01
2006.02.05
Файловая система Linux из под Windows


15-1136975397
LordOfRock
2006-01-11 13:29
2006.02.05
Offline-версии сайтов


1-1136394398
Piter
2006-01-04 20:06
2006.02.05
Потокобезопасность New / Dispose


15-1137130807
begin...end
2006-01-13 08:40
2006.02.05
С Днём рождения! 13 января




   Наверх