Статические функции / подпрограммы против статических переменных - PullRequest
0 голосов
/ 17 февраля 2019

Каким будет основное различие в следующих аспектах следующих двух подводных лодок:

  1. Область применения подводных лодок?(Этот вопрос в первую очередь относится ко второй подпрограмме)
  2. Область объявления переменных внутри?
  3. Применение одного против другого?

1:

Sub test1()
    Static x As Byte
    x = 1
End Sub

2:

Static Sub test2()
    Dim y As Byte
    y = 2
End Sub

1 Ответ

0 голосов
/ 17 февраля 2019

Создание всей процедуры Static - это сокращение для , объявляющее все его локальные переменные Static.

Таким образом, между сабвуферами фактически нет никакой разницы, потому что фактически все их локальныепеременные объявляются как Static и как таковые сохраняются между вызовами.

Но, как и в обоих подпрограммах, вы вручную перезаписываете значение на что-то другое сразу после объявления переменной, эффектсохранение значения ничего не делает для вас.

Нет разницы в области действия подпрограмм (они остаются такими, какими они были до Static), или в области действия локальных переменных (они остаются локальными).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...