Es más eficaz pasar estructuras en llamadas por referencia
que pasar estructuras en llamadas por valor (ya que esto último
requiere que toda la estructura se copie).
Las uniones ahorran almacenamiento.
Los campos de bits ayudan a ahorrar almacenamiento.
Aunque los campos de bits ahorran espacio, su uso puede hacer que
el compilador genere código en lenguaje de máquina
de ejecución más lenta. Esto ocurre debido a que tener
acceso a sólo porciones de una unidad de almacenamiento direccionable
toma más operaciones en lenguaje de máquina. Esto
es uno de los muchos ejemplos de los tipos de intercambio espacio-tiempo
que ocurren en la ciencia de la computación.
Podría declararse un arreglo que contenga más elementos
que el número esperado de elementos de datos, pero esto puede
desperdiciar memoria. En estas situaciones las listas enlazadas
pueden obtener una mejor utilización de la memoria.
Puede resultar muy tardado insertar y eliminar en un arreglo ya
ordenado - deberán ser desplazados en forma apropiada. Todos
los elementos que sigan al desplazado o borrado.
Los elementos de un arreglo se almacenan en forma contigua en memoria.
Esto permite acceso inmediato a cualquier elemento del arreglo,
porque la dirección de cualquier elemento puede ser calculada
directamente,
basada en su posición en relación con el principio
del arreglo. Las listas enlazadas no proporcionan un acceso inmediato
como éste a sus elementos.
Tratándose de estructuras de datos que crecen y se reducen
en tiempo de ejecución, es posible ahorrar memoria utilizando
asignación dinámica de memoria (en vez de los arreglos).
Recuerde, sin embargo, que los apuntadores toman espacio, y que
la asignación dinámica de memoria incurre en sobrecargas
por las llamadas de función.
Al igual que en una declaración struct, una declaración
unión simplemente crea un tipo nuevo. Colocar una declaración
union o struct fuera de cualquier función no crea una variable
global.
|