Essays.club - Ensayos gratis, notas de cursos, notas de libros, tareas, monografías y trabajos de investigación
Buscar

Problemas de programacion basica

Enviado por   •  20 de Octubre de 2018  •  3.118 Palabras (13 Páginas)  •  311 Visitas

Página 1 de 13

...

Modificadores de almacenamiento de las variables

Además de por su tipo de dato, las variables se caracterizan por su tipo de almacenamiento. Éste viene dado por la permanencia de la variable y su ámbito dentro del programa. Existen cuatro tipos básicos de almacenamiento: automático (auto), externo (extern), estático (static) y registro (register). Veamos en más detalle cada uno de ellos:

Register

Se pueden almacenar algunas variables en los registros del procesador mediante la inclusión de register en su definición: register int a; Como el número de registros es limitado, sólo un cierto número de variables pueden ser almacenadas de esta forma. Por ello, no tenemos garantías de que una variable definida como register sea realmente almacenada en un registro del procesador. Sólo se pueden almacenar en registros variables definidas dentro de funciones y no es posible acceder a la dirección de memoria de las variables de tipo registro a partir del operador dirección. Para algunos programas el tiempo de ejecución se puede reducir considerablemente si ciertos valores pueden almacenarse dentro de los registros. Esto se debe a que se ahorran una gran cantidad de accesos al bus de sistema para intercambiar datos entre la CPU y la memoria. El número de variables que se pueden almacenar en los registros depende tanto del compilador de C como de la máquina concreta, aunque lo normal es tener dos o tres variables registro por función.

Auto

Las variables automáticas se declaran siempre dentro de una función y su ámbito se restringe a dicha función, esto es, no pueden ser accedidas desde ninguna otra función. Las variables automáticas definidas en funciones diferentes serán independientes las unas de las otras, aunque compartan el nombre. Todas las variables definidas dentro de una función por defecto se interpretan como automáticas, a no ser que se indique lo contrario (esto es, no es necesario definir algo como auto int a;). Si una variable automática se inicializa con un valor la inicialización se realizará cada vez que se ejecute el cuerpo de la función, y el valor de la variable en una ejecución anterior no se conservará en la siguiente ejecución. Si una variable automática no es inicializa de ninguna manera su valor es impredecible.

Extern

Las variables externas son aquellas que se definen fuera del cuerpo de las funciones. Son accesibles desde la línea que se definen hasta el fin del archivo; con frecuencia también son accesibles por todos los módulos del programa, lo que les vale el nombre de "variables globales". Éstas variables, si son de tipo numérico, son inicializadas a 0 de un modo automático por el compilador.

Este tipo de variable permite transferir información entre distintas funciones sin necesidad de usar argumentos, ya que diversas funciones pueden acceder a un mismo dato. Sin embargo, esto aumenta las dependencias de las funciones entre sí y, en muchas ocasiones, limita su reutilización en otros problemas. Al trabajar con variables externas hay que distinguir entre definiciones de variables externas y declaraciones de variables externas. Para definir una variable externa no es necesario emplear el especificador de tipo de almacenamiento "extern" (de hecho, muchos compiladores de C prohíben su uso). Si la función requiere una variable que ha sido definida antes en el programa la función podrá acceder libremente a ella. Si la variable se define después o en un módulo distinto para qué la función pueda acceder a la variable deberá realizar una declaración de dicha variable. La declaración comienza con el especificador del tipo de almacenamiento y el nombre y tipo de datos de la variable tienen que coincidir con la correspondiente definición de variable externa que aparece fuera de la función. Así, el código siguiente no compila correctamente porque la variable i no es reconocida en la función main:

[pic 14]

En una declaración de variable externa nunca se puede realizar una asignación de valor inicial; así, el siguiente código da un error al compilar por este motivo:

[pic 15]

Static

En esta sección suponemos que el programa está formado por un único archivo. Más adelante abordaremos el caso de los programas multi archivo. En el caso que nos atañe, las variables static se definen dentro de funciones y, por ello, su ámbito se reduce a la función en la que son definidas. A diferencia de las variables automáticas, retienen su valor entre sucesivas llamadas a la función en la que son definidas. Si se incluyen valores iniciales en su declaración (inicialización), estos valores iniciales se asignarían sólo la primera vez que la función es invocada. Se definen de la forma: static int k=3;. Aquellas variables estáticas a las que no se le asigne un valor inicial se inicializarán al valor cero. A continuación, presentamos un programa que permitirá comprender mejor el funcionamiento de estas variables:

[pic 16]

[pic 17]

Principales funciones de las librerías estándar

Del mismo modo que cuando escribimos un programa multi archivo los distintos archivos objeto fruto de la compilación deben enlazarse entre sí para formar el ejecutable final, nuestro programa también se enlazará con archivos objeto de la librería del compilador. Para acceder a la funcionalidad de las librerías basta con incluir el correspondiente archivo de cabecera, el cual contendrá declaraciones de las partes públicas del archivo, y el enlazador se encargará de realizar el resto del trabajo.

A continuación, se recogen las funciones más comunes de las librerías estándar de C.

[pic 18]

[pic 19] [pic 20] [pic 21]

Instituto Tecnológico de Nuevo León.

Programación Básica.

Unidad 4

Ing. Mecatrónica

Alumno: David Alejandro Barboza Alanis

Maestro: Fidel García Ochoa

No. Control: 16480563

¿Qué es un Arreglo (array)?

Es

...

Descargar como  txt (20.2 Kb)   pdf (71.6 Kb)   docx (23.3 Kb)  
Leer 12 páginas más »
Disponible sólo en Essays.club