Estimados:
Hay años luz entre usar variables publicas y constantes definidas con DEFINE.
Una variable pública, es un lugar de memoria que el programa tiene que definir al momento de correr, y mantener en una lista de variables que crea fox (esa lista tiene los apuntadores al área de memoria específica), esto es así porque fox maneja variables variant y tiene que reacomodar el direccionamiento cada vez que cambiamos el contenido.
Aún sin cambiar el contenido, las variables publicas para ser accedidas, implican una carga adicional y es una fuente de error en el caso de que accidentalmente (el accidente es un error de de lógica de programacion) la variable sea modificada y los resultados inesperados.
Además, una variable pública puede "desaparecer" si usamos una clausula private que la "tape".
En cambio, una constante definida con define, es "algo" que reemplaza su nombre por su contenido al momento de la compilación (digo algo, porque una define puede reemplazar desde codigo hasta valores), como se hace en momento de compilaciòn, no toma mas espacio ni tiempo al momento de la ejecución
Ejemplo:
#DEFINE SI IF
#DEFINE ENTONCES THEN
#DFINE FINSI ENDIF
SI A>B ENTONCES
? 'Programando en Foxtellano'
FINSI
Esto funciona, que tal?