Publicado · en mejora
Programming language · Desde 1972
C es un lenguaje compacto y portable de programación de sistemas que se compila a código nativo rápido y da control directo sobre memoria y hardware.
C es un lenguaje de programación procedimental de propósito general que Dennis Ritchie diseñó en los Laboratorios Bell para escribir el sistema operativo Unix. Más tarde lo estandarizaron ANSI e ISO; hoy el comité ISO/IEC JTC1/SC22/WG14 mantiene el estándar, y revisiones como C99, C11 y C17 son de uso habitual. Tiene pocas palabras clave y se construye con piezas sencillas (funciones, estructuras y punteros) que el compilador traduce directamente a código máquina.
C destaca allí donde importan un rendimiento predecible, ejecutables pequeños y el control directo de la memoria: núcleos de sistemas operativos, controladores de dispositivos, firmware de microcontroladores, entornos de ejecución de otros lenguajes y bases de datos. Casi todas las plataformas tienen un compilador de C, y su convención de llamadas (ABI) es el punto de encuentro que usan otros lenguajes para llamar a bibliotecas ajenas. A cambio, C no comprueba los límites de los arreglos ni gestiona la memoria automáticamente, así que evitar desbordamientos de búfer o el uso de memoria ya liberada es responsabilidad de quien programa.
Para empezar, instala GCC, Clang o MSVC y compila programas pequeños desde la terminal. El orden habitual es variables y tipos, estructuras de control, funciones, arreglos y cadenas, punteros, estructuras y, por último, memoria dinámica. Activa las advertencias con -Wall -Wextra, consulta la biblioteca estándar en cppreference y acostúmbrate a rastrear errores de memoria con AddressSanitizer y GDB.
Los punteros dan acceso directo a direcciones de memoria, y malloc y free permiten gestionarla a mano, de modo que decides exactamente cómo se organizan los datos y cómo se usan los recursos.
El lenguaje es compacto y está definido por un estándar ISO, así que el código que lo respeta puede recompilarse para muchos sistemas operativos y procesadores.
C se compila a código máquina nativo casi sin runtime, por lo que sirve incluso para firmware y cargadores de arranque que funcionan sin sistema operativo.
La interfaz de funciones de C actúa como ABI estándar de facto, y lenguajes como Python, Rust o Go pueden llamar a bibliotecas de C directamente mediante su FFI.
En Linux Debian o Ubuntu, instala GCC y Make con el comando de abajo (en Fedora, sudo dnf install gcc make). En macOS, ejecuta xcode-select --install para obtener las Xcode Command Line Tools, que incluyen Clang. En Windows, instala MSYS2 y ejecuta pacman -S mingw-w64-ucrt-x86_64-gcc en la shell UCRT64, o instala Visual Studio Build Tools con la carga de trabajo Desarrollo para el escritorio con C++.
sudo apt install build-essentialAbre una terminal nueva y verifica que el compilador muestra su versión. En macOS el comando gcc apunta a Apple Clang, así que verás una versión de Clang. Si instalaste MSVC, ejecuta cl en el Developer Command Prompt.
gcc --versionGuarda el primer programa como hello.c, compílalo con las advertencias activadas y el estándar C17, y ejecútalo. Con MSVC, compila con cl /W4 hello.c y ejecuta hello.exe.
gcc -Wall -Wextra -std=c17 hello.c -o hello && ./hello#include <stdio.h> incluye la cabecera de entrada y salida estándar, donde se declara printf. La función main es el punto de entrada del programa, y (void) indica que no recibe argumentos. printf imprime el texto y \n es un salto de línea. return 0 le indica al sistema operativo que el programa terminó correctamente. gcc compila el código fuente en un ejecutable llamado hello, y ./hello lo ejecuta.
hello.c
#include <stdio.h>
int main(void) {
printf("Hello, world!\n");
return 0;
}
gcc hello.c -o hello && ./helloSeis capítulos que te llevan desde la instalación hasta las ideas clave de C.
Haz preguntas, comparte tu experiencia e intercambia opiniones sobre C.
Todavía no hay debates. Empieza el primero.
0 comentarios
Iniciar sesión · Inicia sesión para dejar un comentario.
Sé el primero en comentar.