1.3 Registros Variantes

Los registros variantes son una especie de sentencia “case” dentro de un registro y son muy útiles cuando tenemos ciertos atributos que sabemos de antemano que sólo usaremos en ciertas situaciones.

Los registros variantes ahorran memoria, porque como sólo una de las estructuras debidas dentro de ellos puede usarse a la vez, el compilador sólo necesita reservar memoria para la mayor de ellas (en vez de tener que hacerlo para todos los componentes del registro).

Registros Variantes Esta propiedad de compartición de espacio en memoria es similar a la de los bloques disjuntos en ALGOL. De hecho, también en el caso de los registros variantes se permite el anidamiento.

Por tanto, los registros variantes son muy eficientes y seguros, porque sólo permiten al programador realizar operaciones que tengan algún significado dentro del contexto dado y que sean permisibles dentro del registro.

Sin embargo, el problema con esta estructura de datos es que no requiere ser inicializada. Esto significa que podríamos tener cualquier valor dentro de un registro variante después de modificar el valor de un campo identificador.

El acceso a variables no inicializadas puede dar lugar a que se usen valores que fueron dejados previamente en el bloque y que compartían la misma zona de memoria. En el caso de los registros variantes, este valor puede incluso ser de un tipo diferente al esperado.

La raíz del problema es que los registros variantes permiten una forma de aliasing, ya que los campos de las diferentes variantes son todos “alias” de las mismas posiciones de memoria.

He aquí un archvivo que nos habla sobre los registros variantes dale click aquí para descargar.

"Proximamente subiremos pequeños programas para ejemplificar mejor lo temas, revisa en la siguiente dirección http://geeksmarts.4shared.com ahí podrás descargar el material que vayamos subiendo."

No hay comentarios:

Publicar un comentario