Proyecto de fin de semana: divertirse con el lenguaje C
- El lenguaje C es simple pero poderoso, y permite escribir con facilidad sistemas operativos completos
- La sintaxis concisa de C influyó en muchos lenguajes posteriores como Java y Go
- También contribuyó a la aparición del arte de la ofuscación de código
Concurso IOCCC
- El concurso IOCCC es un ejemplo representativo de la ofuscación de código
- Las obras participantes suelen usar macros del preprocesador confusas, formatos ilógicos y nombres de variables poco útiles
- Este tipo de código es difícil de leer, pero C puede ser a la vez legible y confuso
Sentencia switch
- La sentencia
switch, al igual que if o for, no requiere llaves
- Si se usa sin llaves, solo puede incluir una sola sentencia
- La sentencia
switch es básicamente un goto con esteroides
- Inicializar variables dentro de
switch puede provocar comportamientos inesperados
Etiquetas case
- Las etiquetas
case no tienen que estar en el nivel superior del bloque switch
- Se pueden usar junto con la condición
if (0)
- También pueden funcionar sin la sentencia
break
Combinación de else e if
- Se puede reemplazar una sentencia
switch usando else e if
- Es posible manejar varias condiciones incluso sin llaves
Extensiones de GNU
- Se puede obtener la dirección de una etiqueta usando el operador
&& y saltar a ella con goto
- Con esto es posible reemplazar la sentencia
switch
Reemplazo de for
- Es posible implementar bucles usando etiquetas dentro de una declaración de variable
- Aunque es exclusivo de GCC, también permite escribir código muy creativo y confuso en C
Conclusión
- C ofrece la posibilidad de escribir código muy creativo y confuso
- Este tipo de código es difícil de leer, pero demuestra la potencia del lenguaje C
La opinión de GN⁺
- Este artículo muestra muy bien la originalidad y complejidad del lenguaje C
- Es útil para explorar las distintas posibilidades de uso de C
- También resulta interesante su lado artístico, como la ofuscación de código
- Los ejemplos que aprovechan extensiones de GNU son muy únicos y creativos
- Para desarrolladores principiantes que están aprendiendo C, puede resultar algo difícil
Aún no hay comentarios.