Там, где я работаю, есть четкие рекомендации по размещению объявлений переменных. В соответствии с этим их необходимо размещать на глобальном уровне и / или в начале функций, а не во внутренних блоках (таких как цикл for). Поскольку они были указаны людьми более опытными, чем я, я уверен, что для этого должна быть веская причина, но я не могу понять, что это может быть. Было бы неплохо узнать, есть ли какие-либо преимущества времени компиляции / выполнения при объявлении их в большем объеме.