Hoy encontré la siguiente declaración en lenguaje C como parte de una broma, y la verdad es que le da la un poquito de razón a quienes aducen que la sintaxis de C es algo críptica.

C es un lenguaje de programación originalmente desarrollado por Dennis M. Ritchie entre 1969 y 1972 en los Laboratorios Bell. Es un lenguaje orientado a la implementación de Sistemas Operativos, concretamente Unix. Es apreciado por la eficiencia del código que produce y es el lenguaje de programación más utilizado para desarrollar sistemas operativos, aunque también se utiliza para crear aplicaciones. A pesar de su bajo nivel es el lenguaje más portado en existencia, habiendo compiladores para casi todos los sistemas conocidos.

Es un lenguaje de tipos de datos estáticos, débilmente tipificado, de medio nivel pero con muchas características de bajo nivel. Dispone de las estructuras típicas de los lenguajes de alto nivel pero, a su vez, dispone de construcciones del lenguaje que permiten un control a muy bajo nivel. Los compiladores suelen ofrecer extensiones al lenguaje que posibilitan mezclar código en ensamblador con código C o acceder directamente a memoria o dispositivos periféricos.

El mayor problema que presenta el lenguaje C frente a los lenguajes de tipo de dato dinámico es la gran diferencia en velocidad de desarrollo: es más lento programar en C, sobre todo para el principiante. Esto se debe a que el compilador de C se limita a traducir código y la gestión de la memoria se hace explícitamente. En C el programador debe encargarse de reservar y liberar memoria a medida que sea necesario. En cambio, en otros lenguajes (Java, C#, etc.) la memoria es gestionada de forma transparente para el programador. Esto alivia la carga de trabajo humano y en muchas ocasiones evita errores, aunque esto se traduce luego en mayor uso de CPU.

El meme en cuestión decía algo como "C no es tan difícil".

void (*(*f[])())()

Linda pregunta para un examen de C: Explique la declaración anterior, particularmente explique qué es "f".

Lógicamente, para alguien familiarizado con C la respuesta puede ser bastante simple. No así para quien no trabaje a diario o no esté familiarizado con este lenguaje. Desafío a quienes puedan interpretarla a que publiquen sus respuestas en la sección de comentarios.


Tal vez pueda interesarte


Compartí este artículo