En mi caso opino que la mejor forma es declararlas cuando las necesites, solo en el bloque que vayan a ser usadas. Y me baso en un par de principios:
1- De esta forma la variable sera usada solo en el bloque de código actual y la memoria asociada sera disposable una vez salgas de dicho bloque
2- Mejor estructuracion de codigo, proteccion de variables y reutilizacion de nombres
3- Mucho mejor para el que escribe y para el que lee tu código
4- Si se puede...por que no?
1- De esta forma la variable sera usada solo en el bloque de código actual y la memoria asociada sera disposable una vez salgas de dicho bloque
2- Mejor estructuracion de codigo, proteccion de variables y reutilizacion de nombres
3- Mucho mejor para el que escribe y para el que lee tu código
4- Si se puede...por que no?