Diferencia entre revisiones de «Programación en Ada/Cláusulas de representación»

Contenido eliminado Contenido añadido
Formato y RM
pragma Pack
Línea 8:
type Estado_T is (Desconectado, Conectado, Desconocido);
-- Especificamos que el compilador ha de usar dos bits
for EstadoEstado_T'Size use 2;
-- Especificamos los valores que se usarán en memoria para cada valor
for EstadoEstado_T use (Desconectado => 0, Conectado => 1, Desconocido => 3);
</source>
También es posible definir la estructura en memoria de los registros:
Línea 25:
Numero_Reintentos at 1 range 0 .. 31; -- 32 bits en la 2ª palabra
end record;
</source>
 
Otra manera de controlar la representación es con el pragma Pack, que indica al compilador que use la mínima representación para los componentes de un array o de un registro, sin dejar espacios vacíos entre los elementos.
 
<source lang=ada>
type Array_Bits_T is array (Positive range <>) of Boolean;
-- Indicamos que se use un único bit para el tipo Boolean (dos valores, un
-- bit es suficiente) y de este modo tenemos un array de bits sobre el
-- que podemos aplicar operadores booleanos:
pragma Pack (Array_Bits_T);
</source>