C
C es uno de los lenguajes de programación más antiguos que existe y que se sigan usando hoy en día. Se empezó a trabajar en 1972, y a día de hoy sigue siendo la base de importantes proyectos como Linux, el núcleo del sistema operativo GNU, del cual depende prácticamente la inmensa mayoría de las redes públicas y cloud para funcionar y brindar los servicios que tenemos hoy en día.
De C se dice que es un lenguaje de programación antipático y difícil de pillar. Esto es completamente cierto. Al fin y al cabo, los estándares en cuanto a quién necesitaba aprender a programar hace 50 años eran completamente diferentes respecto a hoy en día, así como la metodología.
Sin embargo, una vez le pillas el truco a C, se convierte en un aliado flexible, ligero y potente, para escribir código de alto o bajo nivel (dependiendo de cómo lo mires), que no tiene muchas estructuras pero que a cambio te permite traducir de la forma más precisa algoritmos a código máquina para poder ser ejecutados de la manera más portable posible en prácticamente cualquier procesador existente en el mercado.
Aunque para muchas personas, C solamente será un bache a superar durante algunas asignaturas de algoritmos en su carrera o grado, C es, de momento y mientras Rust no lo impida, la opción predeterminada para fabricar proyectos embebidos y drivers.
-
LecciónVolatile
Volatile es una palabra clave usada para pedirle al compilador que desactive las optimizaciones en una variable, incluso cuando estas estén activas. Sus principales usos son para impedir que el compilador elimine asignaciones "innecesarias" sobre variables, o accesos repetidos a una variable. ¿En qué circunstancias esto es importante? Cuando la... -
LecciónEl optimizador de GCC y la opción -O
Los compiladores hoy en día suelen venir cargados de optimizadores dispuestos a corregir cualquier código que hayamos escrito que tal vez no sea el perfecto, para mejorar su rendimiento en espacio o en tiempo. En este vídeo evaluamos cómo el conjunto de opciones de GCC -O, como -O0, -O1, -O2... -
Lección 📈 En tendenciaFunciones variádicas
Una función variádica es una función que acepta varios parámetros. ¿Cuántos? Unos cuantos. Piensa en printf, que no se sabe cuántos parámetros acepta porque con cada llamada podemos pasar tantos parámetros como nos haga falta. En esta lección vemos cómo utilizar el tipo va_list y las macros va_start, va_arg y... -
Lección 📈 En tendenciaextern
extern es una palabra clave que se usa en el lenguaje de programación C para marcar que un símbolo, como una función o una variable global, es externo, es decir, no está declarado en un archivo .c pero sí está en otra parte. Con esto dejamos que la etapa de... -
LecciónVariables globales
Lo que se conoce como "variable global" no es más que un identificador declarado fuera del ámbito de una función. En este vídeo te cuento cómo declarar este tipo de variables en el lenguaje de programación C, cómo usarlas en otras funciones y qué usos y riesgos hay asociados a... -
Lección 📈 En tendenciaCómo convertir un caracter numérico a número en C
El típico problema de programación en C de hacer un menú de opciones en el que uno de los pasos implica averiguar qué número se ha introducido cuando todo lo que tenemos es su char dentro de la tabla ASCII. En este vídeo te explico cómo puedes convertir un caracter... -
Lección 📈 En tendenciaGDB
Y ya para hablar esta temporada os voy a presentar GDB, que es una herramienta que sirve para depurar programas. La depuración es un proceso que nos permite mirar paso a paso la ejecución de un programa para encontrar y corregir posibles errores que hayamos cometido durante su desarrollo. GDB... -
Lección 📈 En tendenciaMake
Make es una herramienta muy habitual en sistemas UNIX como es el caso de GNU/Linux, con la que se puede orquestar la compilación de programas compuestos de múltiples archivos, en base a reglas. Este es un tutorial un poco breve para introducir al uso de Make allá donde haga falta,... -
Lecciónpkg-config
pkg-config es una herramienta para sistemas UNIX como GNU/Linux o *BSD, que facilita la obtención de los parámetros que son necesarios proporcionarles a GCC para que el software que depende de bibliotecas dinámicas que hayamos instalado en nuestro ordenador pueda saber contra qué debe enlazarse. -
LecciónMás flags: i mayúscula (include), wall, werror, pedantic...
Algunos otros flags de GCC que hasta ahora no hemos visto y que pueden ser muy útiles en el momento de desarrollar. En algunos entornos de desarrollo es posible activar opciones que se convierten en el uso de estos flags. Con el flag -I (I mayúscula) podremos incluir directorios de...