Introducción al lenguaje de programación C

Empiece a utilizar C, un lenguaje de programación fundamental

C es probablemente el lenguaje de programación más conocido. Se utiliza como lenguaje de referencia para los cursos de informática en todo el mundo, y probablemente sea el lenguaje que más personas aprenden en la escuela entre Python y Java.

Recuerdo que fue mi segundo lenguaje de programación, después de Pascal.

C no es solo lo que los estudiantes usan para aprender a programar. No es un lenguaje académico. Y yo diría que no es el lenguaje más fácil, porque C es un lenguaje de programación de bajo nivel.

Hoy en día, C se usa ampliamente en dispositivos integrados y alimenta la mayoría de los servidores de Internet, que se construyen con Linux. El kernel de Linux está construido con C, y esto también significa que C alimenta el núcleo de todos los dispositivos Android. Podemos decir que el código C se ejecuta en una buena parte del mundo entero. Ahora mismo. Bastante notable.

Cuando se creó, C se consideró un lenguaje de alto nivel porque era portátil entre máquinas. Hoy damos por sentado que podemos ejecutar un programa escrito en una Mac en Windows o Linux, quizás usando Node.js o Python. Érase una vez, este no era el caso en absoluto. Lo que C trajo a la mesa fue un lenguaje simple de implementar, con un compilador que se podía portar fácilmente a diferentes máquinas.

Dije compilador: C es un lenguaje de programación compilado, como Go, Java, Swift o Rust. Se interpretan otros lenguajes de programación populares como Python, Ruby o JavaScript. La diferencia es consistente: un lenguaje compilado genera un archivo binario que se puede ejecutar y distribuir directamente.

C no es basura recolectada. Esto significa que tenemos que gestionar la memoria nosotros mismos. Es una tarea compleja y que requiere mucha atención para evitar errores, pero también es lo que hace que C sea ideal para escribir programas para dispositivos integrados como Arduino.

C no oculta la complejidad y las capacidades de la máquina subyacente. Tienes mucho poder, una vez que sabes lo que puedes hacer.

Quiero presentar el primer programa en C ahora, al que llamaremos "¡Hola, mundo!"

Hola C

#include <stdio.h>

int main(void) {
	printf("Hello, World!");
}

Describamos el código fuente del programa: primero importamos elstdiobiblioteca (el nombre significa biblioteca estándar de entrada y salida).

Esta biblioteca nos da acceso a funciones de entrada / salida.

C es un lenguaje muy pequeño en su núcleo, y las bibliotecas proporcionan todo lo que no es parte del núcleo. Algunas de esas bibliotecas son creadas por programadores normales y están disponibles para que otras las utilicen. Algunas otras bibliotecas están integradas en el compilador. Me gustastdioy otros.

stdioson las bibliotecas que proporcionan laprintf()función.

Esta función está envuelta en unmain()función. losmain()La función es el punto de entrada de cualquier programa en C.

Pero, ¿qué es una función, de todos modos?

Una función es una rutina que toma uno o más argumentos y devuelve un solo valor.

En el caso demain(), la función no obtiene argumentos y devuelve un número entero. Identificamos que usando elvoidpalabra clave para el argumento, y elintpalabra clave para el valor de retorno.

La función tiene un cuerpo, que está envuelto entre llaves, y dentro del cuerpo tenemos todo el código que la función necesita para realizar sus operaciones.

losprintf()La función está escrita de manera diferente, como puede ver. No tiene ningún valor de retorno definido y pasamos una cadena, entre comillas dobles. No especificamos el tipo de argumento.

Eso es porque esta es una invocación de función. En algún lugar, dentro delstdioBiblioteca,printfSe define como

int printf(const char *format, ...);

No es necesario que comprenda lo que esto significa ahora, pero en resumen, esta es la definición y cuando llamamosprintf("Hello, World!");, ahí es donde se ejecuta la función.

losmain()función que definimos anteriormente:

#include <stdio.h>

int main(void) {
	printf("Hello, World!");
}

será ejecutado por el sistema operativo cuando se ejecute el programa.

¿Cómo ejecutamos un programa en C?

Como se mencionó, C es un lenguaje compilado. Para ejecutar el programa primero debemos compilarlo. Cualquier computadora con Linux o macOS ya viene con un compilador C integrado. Para Windows, puede utilizar el Subsistema de Windows para Linux (WSL).

En cualquier caso, cuando abres la ventana de la terminal puedes escribirgcc, y este comando debería devolverle un error diciendo que no especificó ningún archivo:

Eso es bueno. Significa que el compilador de C está ahí y podemos empezar a usarlo.

Ahora escriba el programa de arriba en unhello.cexpediente. Puede usar cualquier editor, pero en aras de la simplicidad, voy a usar elnanoeditor en la línea de comando:

Escriba el programa:

Ahora presionactrl-Xsalir:

Confirmar presionando ely, luego presione enter para confirmar el nombre del archivo:

Eso es todo, deberíamos estar de vuelta a la terminal ahora:

Ahora escribe

gcc hello.c -o hello

El programa no debería darte errores:

pero debería haber generado unhelloejecutable. Ahora escribe

./hello

para ejecutarlo:

Yo antepongo./al nombre del programa, para decirle al terminal que el comando está en la carpeta actual

¡Increíble!

Ahora si llamasls -al hello, puede ver que el programa tiene un tamaño de solo 12 KB:

Esta es una de las ventajas de C: está altamente optimizado y esta es también una de las razones por las que es tan bueno para los dispositivos integrados que tienen una cantidad muy limitada de recursos.

Mira algunos de mis otros tutoriales en C:

Descarga mi gratisManual de C


Más tutoriales de clang: