RECURSIVIDAD Y FUNCIONES ESTÁTICAS EN C
Para Rodrigo Paszniuk (2013), recursividad es una técnica en
programación donde una función se llama a sí misma para resolver un
problema. En C, una función recursiva es aquella que se define de
manera que, dentro de su propio cuerpo, se llama nuevamente para
solucionar una parte más pequeña del problema original.
El proceso se utiliza para computaciones repetidas en las que cada
acción se determina mediante un resultado anterior. Se pueden
escribir de esta forma muchos problemas iterativos.
Se deben satisfacer dos condiciones para que se pueda resolver un
problema recursivamente:
1. Caso Base: Es la condición que detiene la recursión, evitando
que la función se llame a sí misma indefinidamente. Sin un caso
base, la recursión continuaría hasta que el programa se quede
sin memoria.
2. Caso Recursivo: Es la parte de la función en la que la función
se llama a sí misma con una versión más simple o pequeña del
problema original.
Ejemplo: Factorial de un número.
(Imagen propia)
Lo que se hace es colocarlas en una pila hasta que la condición de
término se encuentra. Entonces se ejecutan las llamadas a la función
en orden inverso a como se generaron, como si se fueran sacando de
la pila, por tanto, el orden sería algo así:
(Imagen de Proyecto: Sistema de Ayuda Al C.)
Una función estática en C es una función cuyo alcance se limita al
archivo en el que se define. Esto significa que la función no es visible
fuera de ese archivo, incluso si otros archivos del programa intentan
acceder a ella (Uriel Ruelas, 2017).
Según palabras de Vadapalli (2024), esta función cumple con dos
funciones básicas para el lenguaje C:
1. Alcance Interno: Al declarar una función como static, limitas
su visibilidad al archivo de código fuente donde está definida.
Esto es útil para encapsular funciones que no deberían ser
accesibles desde otros archivos del proyecto.
2. Prevención de Colisiones de Nombres: Las funciones
estáticas permiten que diferentes archivos de un proyecto
tengan funciones con el mismo nombre sin causar conflictos, ya
que cada una estará restringida al archivo en que fue definida.
Ejemplo de función estática:
(Imagen de ¿ Para que sirve static en C? )
REFERENCIAS:
Paszniuk, R. (23 de abril, 2013). RECURSIVIDAD en C. Com.py.
Recuperado el 30 de agosto de 2024, de
https://www.programacion.com.py/escritorio/c/recursividad-en-c
Proyecto: Sistema de ayuda al C. (s. f.). Recuperado el 30 de agosto
de 2024, de https://ccia.ugr.es/~jfv/ed1/c/cdrom/cap6/f_cap66.htm
Ruelas, U. (27 de octubre, 2017). Entidades estáticas en C, C++ y
Java. Codingornot.com. Recuperado el 30 de agosto de 2024, de
https://codingornot.com/entidades-estaticas-en-c-c-y-java
Vadapalli, P. (2024, mayo 13). Static function in C. @upgrad; upgrad.
https://www.upgrad.com/tutorials/software-engineering/c-tutorial/stati
c-function-in-c/
¿ Para que sirve static en C? (3 de octubre, 2019). Stack Overflow en
español. Recuperado el 30 de agosto de 2024, de
https://es.stackoverflow.com/questions/297656/para-que-sirve-static-
en-c