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:

#include <stdio.h>

int main(){
printf("Hola mundo");
}

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í:

#include <stdio.h>

int main() { printf("Hola mundo"); }

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.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

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/

Entradas recientes

Desplegar PWA creada con Vue 3, Vite y SQLite3 en Apache

Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…

3 días hace

Arquitectura para wasm con Go, Vue 3, Pinia y Vite

En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…

3 días hace

Vue 3 y Vite: crear PWA (Progressive Web App)

En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…

3 días hace

Errores de Comlink y algunas soluciones

Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…

3 días hace

Esperar promesa para inicializar Store de Pinia con Vue 3

En este artículo te voy a enseñar cómo usar un "top level await" esperando a…

3 días hace

Solución: Apache – Server unable to read htaccess file

Ayer estaba editando unos archivos que son servidos con el servidor Apache y al visitarlos…

4 días hace

Esta web usa cookies.