Declaración de una tabla

<tipo> <nombre> [ <constante> ]

(o bien, si se quiere inicializar la tabla)

<tipo> <nombre> [ <constante> ] = <lista de constantes>

(o bien, si se inicializar sin definir su longitud)

<tipo> <nombre> [ ] = <lista de constantes>

También se pueden declarar tablas de varios tipos y en cualquier sección (GLOBAL, LOCAL o PRIVATE). Para declarar una tabla debe indicarse el tipo (INT, WORD, BYTE o STRING) el nombre, la longitud entre corchetes ((símbolos [ ])) y, en caso de quererse inicializar, un símbolo de asignación (=) precediendo a la lista de constantes.


Nota: La longitud de la tabla se expresa como el valor máximo de su índice, es decir, todas las tablas van de la posición 0 a la posición indicada entre los corchetes. Por ejemplo, una tabla declarada como mi_tabla[9], será una tabla de longitud 10 (de 10 posiciones, desde mi_tabla[0] hasta mi_tabla[9]).


Varios ejemplos de declaración de tablas:

Mitabla[3]; - Tabla INT de 4 elementos (de Mitabla[0] a Mitabla[3]).

INT tab[]=1,2,3,4,5; - Tabla INT de 5 elementos (de tab[0] a tab[4]).

WORD tword[1]; - Tabla WORD de 2 elementos.

BYTE tbyte[3]=11,22; - Tabla BYTE de 4 elementos (inicializada a 11,22,0,0).

STRING p; - Cadena de texto de hasta 256 caracteres (inicializada a "").

STRING q[32]= "hola"; - Cadena de texto de hasta 33 caracteres (inicializada a "hola").


Consideraciones sobre las tablas:

1. Si no se indica el tipo de la tabla, esta será de tipo INT.
2. Si se inicializa la tabla (con una lista de constantes), puede omitirse la longitud entre corchetes.
3. Se debe poner un punto y coma tras cada declaración.
4. Si no se define la longitud de la tablas tipo STRING, estas serán de 256 elementos (del [0] al [255]).
5. Si no se define la lista de constantes, los elementos estarán inicializados a 0.

Se permite acceder al elemento 0 simplemente con el nombre de la tabla, como si fuera una variable; es decir, para el compilador mi_tabla[0] será lo mismo que mi_tabla.

Nota: No será posible obtener el OFFSET de un elemento de una tabla BYTE, WORD o STRING (como OFFSET tbyte[1]), para acceder a este elemento externamente se deberá utilizar, en todo caso, los datos de tipo POINTER.


Las tablas multidimensionales.

Se pueden declarar tablas INT, WORD o BYTE de 1, 2 o 3 dimensiones. Tanto la declaración de estas como el acceso a las mismas se debe hacer separando las dimensiones con comas. Por ejemplo, la siguiente declaración:

 BYTE tabla[255,255];

Definiría tabla de tipo BYTE (para todos sus elementos) de 2 dimensiones, con un total de 65536 elementos (256*256).

Nota: Las tablas de tipo WORD y BYTE pueden significar un importante ahorro de memoria, respecto a las tablas de tipo INT (ocupan 2 y 4 veces menos, respectivamente). Pero serán más rápidas las operaciones con datos de tipo INT.


Ver: Sintaxis - Declaración de un dato