ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

La "clase de almacenamiento" de una variable determina si el elemento tiene una duración "global" o "local". C llama a estas dos duraciones "static" y "automatic".


Enviado por   •  3 de Noviembre de 2016  •  Ensayos  •  581 Palabras (3 Páginas)  •  280 Visitas

Página 1 de 3

  1. DEFINICIÓN

Clases de almacenamiento:

La "clase de almacenamiento" de una variable determina si el elemento tiene una duración "global" o "local". C llama a estas dos duraciones "static" y "automatic". Un elemento con una duración global existe y tiene un valor a lo largo de la ejecución del programa. Todas las funciones tienen duraciones globales.

Las variables automáticas, o a las variables con duraciones locales, se les asigna un nuevo almacenamiento cada vez que el control de ejecución pasa al bloque en que están definidas. Cuando la ejecución realiza una devolución, las variables dejan de tener valores significativos.

Características

Variable automática

Variable registro

Variable estática

Variable externa

1

Palabra clave usada

auto

register

static

extern

2

Almacenamiento

Memoria

Registros de CPU

Memoria

Memoria

3

Valor inicial predeterminado

Valor de basura

Valor de basura

Valor cero

Valor cero

4

Alcance

Local para el bloque en el que se define la variable

Local para el bloque en el que se define la variable

Local para el bloque en el que se define la variable

Global

5

Duración

Hasta que los restos de control dentro del bloque en el que se define la variable

Hasta que los restos de control dentro del bloque en el que se define la variable

Valor de la variable persiste entre diferentes llamadas a funciones

Mientras la ejecución del programa no llega a su fin

6

Uso

Uso general. Más ampliamente utilizado en comparación con otras clases de almacenamiento.

Se utiliza ampliamente en contadores de bucles.

Se utiliza ampliamente para las funciones recursivas.

Se utiliza en el caso de variables que están siendo utilizados por casi todas las funciones en un programa.

[pic 1] 

Las reglas relativas a static incluyen:

  • Las variables declaradas fuera de todos los bloques sin la palabra clave static conservan siempre sus valores en el programa.
  • Para restringir el acceso a una unidad de traducción determinada, debe utilizar la palabra clave static .Esto le otorga “vinculación interna”. Para hacerlas globales para todo un programa, omita la clase de almacenamiento explícita o use la palabra clave extern (vea las reglas en la lista siguiente) .Esto le otorga “vinculación externa”. La vinculación interna y externa también se explican en Vinculación.
  • Puede definir una variable en el nivel externo una única vez dentro de un programa.
  • Puede definir otra variable con el mismo nombre y el especificador de clase de almacenamiento static en una unidad de traducción diferente.
  • Puesto que cada definición static solo es visible dentro de su propia unidad de traducción, no se produce ningún conflicto.
  • Esto proporciona una manera útil de ocultar nombres de identificación que se deban compartir entre funciones de una única unidad de traducción, pero que no deban ser visibles para otras unidades de traducción.
  • El especificador de clase de almacenamiento static se puede aplicar también a funciones.
  • Si se declara una función static, su nombre es invisible fuera del archivo en el que se

[pic 2]

Las reglas para usar extern son:

  • El especificador de clase de almacenamiento extern declara una referencia a una variable definida en otro lugar.
  • Puede usar una declaración extern para crear una definición en otro archivo de código fuente visible o para hacer que una variable sea visible antes de su definición en el mismo archivo de código fuente.
  • Una vez que se ha declarado una referencia a la variable en el nivel externo, la variable está visible en el resto de la unidad de traducción en la que aparece la referencia declarada.
  • Para que una referencia extern sea válida, la variable a la que hace referencia debe definirse una vez y solo una vez en el nivel externo.
  • Esta definición (sin la clase de almacenamiento extern) puede estar en cualquier unidad de traducción de las que componen el programa.

[pic 3]

[pic 4]

...

Descargar como (para miembros actualizados)  txt (4.1 Kb)   pdf (317.6 Kb)   docx (179.6 Kb)  
Leer 2 páginas más »
Disponible sólo en Clubensayos.com