PUBLIC
 Crea e inicializa matrices y variables de memoria públicas
------------------------------------------------------------------------------
 Sintaxis

     PUBLIC <identificador> [[:= <inicializador>], ... ]

 Argumentos

     <identificador> es el nombre de la matriz o variable pública que se
     va a crear. Si <identificador> va seguido de corchetes ([ ]), se crea
     como matriz. Si <identificador> es una matriz, la sintaxis para la
     especificación del número de elementos para cada dimensión puede ser
     matriz[<nElementos>, <nElementos2>,...] o
     matriz[<nElementos>][<nElementos2>].... El número máximo de elementos
     por dimensión es 4096. El número máximo de dimensiones por matriz está
     limitado únicamente por la cantidad de memoria disponible.

     <inicializador> es la asignación opcional de un valor a una nueva
     variable pública. No obstante, no es posible dar valores a los
     identificadores de matriz con <inicializador>. Un <inicializador> para
     una variable pública consiste en el operador de asignación en línea
     (:=) seguido de cualquier expresión de CA-Clipper válida, incluyendo
     una matriz en forma literal. Excepto en el caso de las matrices, si no
     se especifica <inicializador>, las variables públicas se inicializan
     con el valor falso (.F.). Esta es una excepción a la regla general de
     que las variables sin inicializar contienen valores NIL. En el caso de
     las matrices, sin embargo, el valor inicial de todos los elementos es
     NIL.

     Puede crearse una lista de variables y matrices y, opcionalmente,
     inicializarla con una sentencia PUBLIC, si las definiciones están
     separadas por comas.

 Descripción

     La sentencia PUBLIC crea variables y matrices visibles para todos los
     procedimientos y funciones definidas por el usuario de un programa. Las
     variables públicas existen durante todo el programa o hasta que se
     liberan explícitamente con CLEAR ALL, CLEAR MEMORY o RELEASE. La
     declaración de matrices o variables privadas, locales o estáticas con
     el mismo nombre que las variables públicas existentes oculta
     temporalmente estas variables públicas hasta que las variables que las
     encubren se liberan o dejan de estar visibles. Los intentos de crear
     una variable pública con el mismo nombre que una variable privada
     visible y existente simplemente se ignoran (consulte el apartado Notas
     para ver una excepción).

     Los intentos de especificar una variable pública que entren en
     conflicto con una declaración FIELD, LOCAL o STATIC previa del mismo
     nombre dan como resultado un error de compilador grave. Esto es así
     independientemente del ámbito de la declaración.

     Las sentencias PUBLIC son sentencias ejecutables y, por tanto, deben
     especificarse dentro del cuerpo de una definición de procedimiento o
     función definida por el usuario. Asimismo, deben ir detrás de todas las
     declaraciones de compilación, tales como FIELD, LOCAL, MEMVAR y
     STATIC.

     El número máximo de matrices y variables públicas y privadas que pueden
     existir simultáneamente en un mismo programa es de 2048.

     Si desea más información sobre las declaraciones de variables y sus
     ámbitos, consulte el apartado Variables del capítulo "Conceptos
     Básicos" de la Guía de Programación y Utilidades.

 Notas

     ■ Clipper PUBLIC: Para incluir extensiones de CA-Clipper en un
        programa y, no obstante, permitir que el programa se ejecute en
        dBASE III PLUS, la variable pública especial Clipper se inicializa
        con el valor verdadero (.T.) cuando se crea como PUBLIC.

     ■ Nombre de matriz pública entra en conflicto con variables
        privadas existentes: La sentencia PUBLIC x[10] no creará la matriz
        pública x si ya existe una variable privada o pública x. Sin
        embargo, destruye el contenido de la x existente, sustituyéndola por
        una referencia a una matriz de diez elementos.

 Ejemplos

      Este ejemplo crea dos matrices públicas y una variable
        pública:

        PUBLIC aMatriz1[10, 10], var2
        PUBLIC aMatriz2[20][10]

      La siguiente sentencia PUBLIC crea variables y las inicializa
        con valores:

        PUBLIC cCadena := SPACE(10), cColor := SETCOLOR()
        PUBLIC aMatriz := {1, 2, 3}, aMatriz2 := ARRAY(12, 24)

 To download this example - click here.

See Also: LOCAL MEMVAR PARAMETERS PRIVATE STATIC