Sunteți pe pagina 1din 3

DATOS LOCALES Y GLOBALES

En un programa procedimental (que es un conjunto de


instrucciones y sentencias) por ejemplo en c , existen dos
tipos de datos.
Las reglas de mbito de un lenguaje son las reglas que
controlan si un fragmento de cdigo conoce o tiene acceso a
otro fragmento de cdigo o de datos.
Datos locales que son ocultos de la funcin y son utilizados,
exclusivamente por la funcin. Estos datos locales estn
estrechamente relacionados con sus funciones y estn
protegidos de modificaciones por otras funciones
Una variable local es aquella cuyo mbito se restringe a la
funcin que la ha declarado se dice entonces que la variable
es local a esa funcin. Esto implica que esa variable slo va a
poder ser manipulada en dicha seccin, y no se podr hacer
referencia fuera de dicha seccin. Cualquier variable que se
defina dentro de las llaves del cuerpo de una funcin se
interpreta como una variable local a esa funcin.
Cuando una variable x es local a una funcin func1, significa
que la funcin func1 es la propietaria de dicha variable, y
puede acceder a ella y modificarla. Si cualquier otra funcin
del programa necesita conocer el valor de la variable x, es la
funcin func1 la que debe transferir el valor de x a travs del
paso de argumentos en la llamada a la funcin. Si adems
esta funcin desea modificar el valor de dicha variable,
entonces tendr que devolver el nuevo valor a func1, y
ser func1 quien se encargue de asignar el valor devuelto a
su variable x.
El argumento formal (los veremos en la siguiente seccin)
mbito de un argumento formal es el mismo que el de una
variable local; el argumento formal definido en la cabecera de
una funcin slo podr ser accedido dentro del cuerpo de
dicha funcin, y no en otros lugares del programa.

Ejemplo: Se muestra la diferencia entre las variables


locales y globales, con la consiguiente diferenciacin
en los mbitos que abarcan:

Una variable global es aquella que se define fuera del


cuerpo de cualquier funcin, normalmente al principio
del programa, despus de la definicin de los archivos
de biblioteca (#include), de la definicin de
constantes simblicas y antes de cualquier funcin. El
mbito de una variable global son todas las funciones
que componen el programa, cualquier funcin puede
acceder a dichas variables para leer y escribir en ellas.
Es decir, se puede hacer referencia a su direccin de
memoria en cualquier parde del programa.
El uso de variables globales no es aconsejable a pesar
de que aparentemente nos parezca muy til, esto se
debe a varias razones fundamentales:
Legibilidad menor.
Nos condiciona en muchos casos que el programa slo
sirvapara un conjunto de casos determinados.
El uso indiscriminado de variables globales produce
efectos colaterales. Esto sucede cuando existe una
alteracin no deseada del contenido de una variable
global dentro de una funcin, bien por invocacin, bien

por olvidar definir en la funcin una variable local o un


parmetro formal con ese nombre. La correccin de
dichos errores puede ser muy ardua.
Atenta contra uno de los principios de la programacin,
la modularidad. El bajo acoplamiento supone no
compartir espacios de memoria con otras funciones, y
potenciar el paso de informacin (llamadas) para que la
funcin trate la informacin localmente.
Las variables declaradas dentro de una funcin son
automticas por defecto, es decir, slo existen mientras se
ejecuta la funcin. Cuando se invoca la funcin se crean estas
variables en la pila y se destruyen cuando la funcin termina.
La nica excepcin la constituyen las variables locales
declaradas como estticas ( static ). En este caso, la variable
mantiene su valor entre cada dos llamadas a la funcin an
cuando su visibilidad sigue siendo local a la funcin.
Una funcin siempre es conocida por todo el programa,
excepto cuando se declara como esttica, en cuyo caso slo
la podrn utilizar las funciones del mismo mdulo de
compilacin.
En C, todas las funciones estn al mismo nivel de mbito. Es
decir, no se puede definir una funcin dentro de otra funcin.
Esto es por lo que C no es tcnicamente un lenguaje
estructurado en bloques.
Tambin puede suceder que en un mismo mbito aparezcan
variables locales y globales con el mismo nombre. Cuando
sucede esta situacin, siempre son las variables locales y
argumentos formales los que tienen prioridad sobre las
globales. Para ver reflejado todo esto ms grficamente se
muestra un ejemplo a continuacin:

S-ar putea să vă placă și