Ejemplo de alcance
#include <stdio.h> void usoLocal( void ); /* prototipo de función */ void usoStaticLocal( void ); /* prototipo de función */ void usoGlobal( void ); /* prototipo de función */ int x = 1; /* variable global */ /* la función main comienza la ejecución del programa */ int main() { int x = 5; /* variable local a main */ printf("x local fuera del alcance de main es %dn", x ); { /* comienza el nuevo alcance */ int x = 7; /* variable local con nuevo alcance */ printf( "x local en el alcance interno de main es %dn", x ); } /* fin de nuevo alcance */ printf( "x local en el alcance externo de main es %dn", x ); usoLocal(); /* usoLocal contiene a automatic local x */ usoStaticLocal(); /* usoStaticLocal contiene a static local x */ usoGlobal(); /* usoGlobal utiliza global x */ usoLocal(); /* usoLocal reinicializa automatic local x */ usoStaticLocal(); /* static local x retiene su valor previo */ usoGlobal(); /* x global también retiene su valor */ printf( "nx local en main es %dn", x ); return 0; /* indica terminación exitosa */ } /* fin de main */ /* usoLocal reinicializa a la variable local x durante cada llamada */ void usoLocal( void ) { int x = 25; /* se inicializa cada vez que se llama usoLocal */ printf( "nx local en usoLocal es %d después de entrar a usoLocaln", x ); x++; printf( "x local en usoLocal es %d antes de salir de usoLocaln", x ); } /* fin de la función usoLocal */ /* usoStaticLocal initializa la variable static local x sólo la primera vez que se invoca a la función; el valor de x se guarda entre las llamadas a esta función */ void usoStaticLocal( void ) { /* se inicializa sólo la primera vez que se invoca usoStaticLocal */ static int x = 50; printf( "nlocal static x es %d al entrar a usoStaticLocaln", x ); x++; printf( "local static x es %d al salir de usoStaticLocaln", x ); } /* fin de la función usoStaticLocal */ /* la función usoGlobal modifica la variable global x durante cada llamada */ void usoGlobal( void ) { printf( "nx global es %d al entrar a usoGlobaln", x ); x *= 10; printf( "x global es %d al salir de usoGlobaln", x ); } /* fin de la función usoGlobal */
Antes de comentar: Gran parte de los ejercicios propuestos no tienen librerías debido a que Wordpress las eliminó al verlas como etiquetas HTML. Si sabes/tienes/conoces las librerías que hacen falta, déjalo en los comentarios. Y lo mas importante: Todos los ejemplos fueron realizados por personas con únicamente conocimiento básico del lenguaje, no de programación.
Otro punto importante: Si vas a sugerir un segmento de código en algún lenguaje debes hacerlo así:
- Si es lenguaje C [c]Código en C[/c]
- Si es lenguaje Pascal [pascal]Aquí dentro el código de Pascal[/pascal].
De esta manera el código coloreas el código.
Otro punto importante para muchos que sienten que se les ignora: Todos los comentarios los reviso y en su debido momento los apruebo, pero ojo con el con lo siguiente:Me reservo el derecho de alterar, publicar o no los comentarios as´ como cambiar mis condiciones en el momento que así lo requiera.
¿estas de acuerdo? entonces adelante que ya te he quitado bastante tiempo leyendo esta basura de advertencias :)