Declarar una variable significa informar al compilador los nombres y las clases de variables que existirán en el programa. Con base en las declaraciones, la identificación se realiza en la etapa de compilación, antes de la ejecución de las instrucciones y de la aplicación.
Las variables pueden declararse por medio de los siguientes comandos:
- PUBLIC
- PRIVATE
- STATIC
- LOCAL
La declaración es obligatoria para las variables de las clases estática (STATIC) y local (LOCAL), y opcional para las clases privada (PRIVATE) y pública (PUBLIC). Sin embargo, siempre es recomendable declarar las variables, independientemente de su clase, para que el programa resulte fácil de entender, optimizado y libre de ambigüedades.
Los comandos de declaración de variables no son ejecutables. Es decir, no desencadenan ninguna operación. Deben insertarse en el programa antes de cualquier comando ejecutable, pues el compilador tiene que conocer el nombre y la clase de variables antes de ejecutar cualquier operación con estas.
Como la declaración de variables se resuelve durante la etapa de compilación, esta abarca ciertas unidades del código fuente: programas (archivos.PRW), rutinas/funciones y bloques de código. Observe que algunas de estas unidades están incluidas en otras: las rutinas/funciones están incluidas dentro de programas y los bloques de código están incluidos dentro de las rutinas/funciones o de otros bloques de código.
De esta manera, una declaración de variable que ocurra dentro de una función se aplica únicamente a esta función y a cualquier bloque de código que contenga. Por otro lado, una declaración de variable que ocurra dentro de un programa (archivo .PRW), antes del comando de definición de las otras funciones (FUNCTION), se aplica a todas las funciones incluidas en este.
Una declaración realizada en una función dentro de otra puede tener variables con el mismo nombre. En este caso, la declaración interna prevalece sobre la externa únicamente durante la ejecución de la función interna. Por ejemplo, una variable declarada en un programa (función más externa) puede tener el mismo nombre que una variable declarada en una función incluida en este programa. Durante la ejecución de esta función interna, la variable declarada en esta con el mismo nombre de la declarada en el programa podrá tener su valor modificado, sin que esto afecte a otra variable que pertenezca al programa. Al finalizar la función interna, se descarta su variable y la variable del programa permanece con su valor original.