Solución:
No puede definir una función dentro de otra función en el estándar C.
Usted puede declarar una función dentro de una función, pero no es una función anidada.
gcc tiene una extensión de idioma que permite funciones anidadas. No son estándar y, como tales, dependen completamente del compilador.
No, no existen en C.
Se utilizan en lenguajes como Pascal por (al menos) dos razones:
- Permiten la descomposición funcional sin contaminar los espacios de nombres. Puede definir una única función públicamente visible que implemente cierta lógica compleja confiando en una o más funciones anidadas para dividir el problema en piezas lógicas más pequeñas.
- Simplifican el paso de parámetros en algunos casos. Una función anidada tiene acceso a todos los parámetros y algunas o todas las variables en el alcance de la función externa, por lo que la función externa no tiene que pasar explícitamente una pila de estado local a la función anidada.
Las funciones anidadas no forman parte de ANSI C, sin embargo, son parte de GNU C.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)