Маловероятно, что существует разница в производительности между двумя фрагментами, только профилирование вашего кода может сказать достоверно, но есть важное функциональное отличие, которое вы должны учитывать здесь.
Если ваша переменная test
нужна только внутри функции update()
, тогда вы должны объявить ее внутри функции. Таким образом, переменная имеет ограниченную область видимости внутри функции. Время жизни такой локальной переменной ограничено областью, в которой она находится. Т.е. В теле функции до закрывающей скобки }
.
Если вы вообще хотите, чтобы ваша переменная test
поддерживала состояние при вызовах функций, то это может быть локальная статическая переменная, объявленная внутри функции.
Объявление test
вне функции делает ее глобальной переменной. И он может быть доступен в любой функции в одном и том же файле. Будучи глобальной переменной, его время жизни продолжается до конца программы.