cpp

Embellecer código de C++ y C con clang-format

En este post te mostraré cómo formatear (agregar estilo legible) a tu código de C y C++, es decir, embellecerlo.

Aunque este formateador funciona para otros lenguajes (C#, JavaScript, Objective-C) solo te mostraré el ejemplo con los dos lenguajes que mencioné.

Vamos a usar clang, y específicamente el binario de clang-format.

Nota: recomiendo usar clang solo para embellecer el código; pero si quieres un compilador de C o C++ dale un vistazo a mingw que tiene g++ y gcc.

Descargar e instalar clang

Ve a la página de descargas dentro de Pre-Built Binaries: https://releases.llvm.org/download.html y elige ya sea para 32 o para 64 bits.

Ejecuta el instalador y dale Siguiente, Siguiente. Lo único importante es que cuando te pregunte lo de la PATH selecciones agregarlo para el usuario actual o para todos los usuarios:

Agregar LLVM a PATH (compilador de C y C++)

Formatear código

Si hiciste todo correctamente entonces ahora puedes usar clang-format. Las opciones más comunes son las siguientes.

Para formatear el código y mostrar el código embellecido en la salida estándar (si no sabes qué es, me refiero a la consola) ejecuta clang-format archivo.extensión

Si quieres que el código ya embellecido se guarde dentro del mismo archivo entonces pasa la opción i así: clang-format -i archivo.extensión

También puedes embellecer el código de C y C++ de varios archivos. Así:

clang-format archivo1 archivo2

Si lo quieres con la opción i, pasa primero la opción y luego los archivos:

clang-format -i archivo1 archivo2

Otra opción interesante es style, que toma el estilo. Hay varios, los cuales son LLVM, Google, Chromium, Mozilla y WebKit. Para pasar el estilo que se usa al formatear el código usa:

clang-format --style=estilo archivo1.extensión

Igualmente puedes pasar la opción -i así:

clang-format -i --style=estilo archivo1.extensión

La documentación la encuentras en la web de clang.

Embellecer código – Ejemplo

Veamos un simple ejemplo de cómo hacer el código de C más legible y embellecido. Tenemos el original:

See the gist on github.

Ahora al ejecutar clang-format hola.c se muestra el contenido formateado en la consola:

Código embellecido usando clang

No sé cuál es el estilo por defecto, pero en este caso como solo hay una expresión la pone en la misma línea. Si quisiera formatearlo y escribirlo en el mismo archivo sería:

clang-format -i hola.c

Lo que haría que ahora el archivo del código fuente esté así:

See the gist on github.

Probando distintos estilos de formato

Finalmente quiero mostrar cómo es que se usan los estilos. Esto es muy importante pues en algunas organizaciones o equipos obligan el uso de un estilo en particular.

Vamos a darles un vistazo:

Distintos estilos al formatear código usando clang

A mí me gusta más el estilo de chromium; pero será cosa de cada quien. Además, este es un ejemplo simple, en realidad los estilos son más que eso; indican cómo acomodar los comentarios, qué hacer con cadenas largas, etcétera.

Formatear código de C++

Puedes hacer lo mismo que hice con los archivos de C pero ahora usando archivos de C++; la herramienta detectará el lenguaje a través de la extensión del archivo.

Finalmente quiero mencionar que también puedes usar esta herramienta online.

Encantado de ayudarte


Estoy disponible para trabajar en tu proyecto, modificar el programa del post o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.

No te pierdas ninguno de mis posts

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Compartir
Publicado por
parzibyte

Entradas recientes

Imprimir PDF con Bot de Telegram

La impresión de un PDF en cualquier impresora se puede automatizar con un bot de…

2 días hace

Enviar mensaje con bot de Telegram usando JavaScript (lado del cliente)

Hoy te enseñaré cómo enviar un mensaje a un usuario desde un bot de Telegram…

3 días hace

PHP: incrustar imagen en base64

El día de hoy te enseñaré algo muy sencillo pero útil al programar con PHP:…

3 días hace

Plugin ESC POS – Actualización 3.4.0: imprimir HTML

El plugin para imprimir en impresoras térmicas alcanza hoy su versión 3.4.0 agregando soporte para…

4 días hace

JavaScript (lado del cliente): leer pixeles de imagen

En ocasiones es necesario leer los pixeles y colores de una imagen con JavaScript del…

2 semanas hace

PHP y JavaScript: llenar select con AJAX

Siguiendo con los tutoriales de listas desplegables o select con JavaScript, vamos a ver cómo…

2 semanas hace

Esta web usa cookies.