Как уничтожаются данные при выходе из процедуры?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
arthur2
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1688
Зарегистрирован: 23.01.2008 (Ср) 14:35

Как уничтожаются данные при выходе из процедуры?

Сообщение arthur2 » 16.03.2014 (Вс) 22:20

С переменными простых типов более-менее понятно - все объявленные на уровне процедуры переменные складываются в стек, а на выходе из стека вынимаются. А как обстоит дело со строками и массивами? На выходе из процедуры компилятор что-то дописывает, что очищает данные? или как?
Артур
 
   

The trick
Постоялец
Постоялец
 
Сообщения: 781
Зарегистрирован: 26.06.2010 (Сб) 23:08

Re: Как уничтожаются данные при выходе из процедуры?

Сообщение The trick » 16.03.2014 (Вс) 22:44

Что именно не понятно? Насколько я знаю локальные строки очищаются посредством вызовом __vbaFreeStr, которая вызывает SysFreeString, массивы через __vbaAryDestruct которая вызывает SafeArrayDestroyData, SafeArrayDestroyDescriptor
UA6527P

arthur2
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1688
Зарегистрирован: 23.01.2008 (Ср) 14:35

Re: Как уничтожаются данные при выходе из процедуры?

Сообщение arthur2 » 17.03.2014 (Пн) 5:17

Спасибо, теперь вроде понятно :) Мог бы и сам догадаться... :oops:
Артур
 
   


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: SemrushBot и гости: 52

    TopList