SIZEOF()

SIZEOF(<nombre del dato>)

Retorna:

El número de elementos que contiene el dato.

Descripción:

La palabra reservada SIZEOF se utiliza para calcular el número de elementos que tiene una tabla o una estructura.

Esta palabra reservada se utiliza como si fuera una función del lenguaje, indicando, entre paréntesis, el nombre del dato y devolviendo el número de elementos (posiciones) del mismo.

Es posible utilizarla para obtener el número de elementos de una variable pero, en este caso, SIZEOF retornará siempre 1 como número de elementos (ya que una variable es un único elemento).

Programa ejemplo:
PROGRAM ejemplo_sizeof;

PRIVATE
    tabla1[]=0, 1, 2, 3;
    tabla2[]=4, 5, 6, 7, 8;
    variable=9;

BEGIN
    // ...

    save("help\help.dat", OFFSET tabla1, SIZEOF(tabla1)+SIZEOF(tabla2)+SIZEOF(variable));

    // ...
END


En este ejemplo se utiliza SIZEOF para obtener el número de elementos de tres datos diferentes; éstos son:

tabla1 de 4 elementos.
tabla2 de 5 elementos.
variable (1 elemento).

En este caso se utiliza para grabar en el archivo help.dat el contenido de estos tres datos con la función save() que requiere, como tercer parámetro, el número de elementos que se quieren guardar en el archivo.

En este caso se guardarán 10 elementos en el archivo help.dat, que según están inicializados los datos en el ejemplo serán los números del 0 al 9.

La sentencia save() del ejemplo anterior se podría haber expresado también sin utilizar SIZEOF de la siguiente forma:

  save("help\help.dat", OFFSET tabla1, 10);

La única diferencia es que si en el programa del ejemplo se añadieran elementos a alguna de las dos tablas, no haría falta modificar la llamada a la función save(), ya que SIZEOF siempre devolverá el tamaño actual de las mismas.


Ver: Sintaxis - Declaración de una tabla - Declaración de una estructura