Capítulo 1: Introducción

Saltar al capítulo 2

¿Qué es el lenguaje C?.

Es un lenguaje de nivel medio, que se ensambla y compila directamente. Al ser compilado asegura tener una buena velocidad, por esto es unos de los lenguajes más rápido al momento de ejecutarlo, pero es difícil de aprender i/o implementar por su manejo de memoria más que nada (Lo que automatizan lenguajes de alto nivel, este lo tienes que hacer a mano), Esto lo notaras mucho más siendo principiante o comenzando a aprenderlo. A pesar de todo es muy poderoso, también se usa en gran cantidad de aplicaciones i/o sistemas operativos (como Linux), juegos (como Doom), etc...

¿Porque aprenderlo?

Hoy en día hay pocas razones por las que programar en C, ya que hay lenguaje de programación de alto nivel más fáciles de manejar y más seguros a la hora de buscar errores. La principal razón es que los lenguajes de programación de alto nivel son interpretados suelen ser seguros, pero sacrifican la velocidad de los programas por esta seguridad, y también al ser interpretado este requiere más recursos que un lenguaje que se ejecuta directamente en la maquina, como el caso de C y se hace mucho más difícil el acceso directo a la memoria. De hecho algunos módulos o biblioteca de otros lenguajes de alto nivel se hacen en C para asegurar más velocidad o tener mas acceso directo a la memoria. Cuando programas un videojuego la velocidad suele ser lo más importante, cuando programa un controlador o necesitas acceso al hardware es preferible o escribirlo en C y en el caso de los videojuegos escribir el motor en C. Tambien se usa cuando un software se debe ejecutar en tiempo real, como el GPS, un micro controlador, etc... .

¿Que herramientas usar?

En la mayoría de los tutoriales te van a recomendar descargar un IDE (Integrated Development Environment o Entorno de Desarrollo Integrado en español) como Visual Studio (Y no les faltan razones para hacerlo), pero aquí te voy a recomendar que aprendas a usar primero la consola (en Windows es CMD) para así no dependas al 100% de una herramienta en específico, pero no hay problema en usar un IDE.

Compilador:
GCC o Gnu Compiler Collection que es el compilador de C/C++. Debes descargar he instalar los binarios del gcc: Aqui.
IDE:
  • VSCode o Visual Studio Code. Es una versión portable y ligera de Visual Studio.
    Nota: En window 7 32bits debes descargar: Aqui, es la ultima versión para este Sistema Operativo.
  • Sublime Text Es un editor de texto con resaltado de sintaxis bastante ligero, pero poderoso.
    Nota: En Window 32bits debes descargar: Sublime Text 3.
  • Dev CPP Es un IDE C++ que está un poco desactualizado, pero fácil de usar he instalar para los principiantes. Solo para Windows y trae MinGW por defecto así que no tendrías que instalarlo.

El sistema operativo que uso en este tutorial es Windows 7, pero el lenguaje al ser de nivel medio la sintaxis es muy portable (dependiendo de la biblioteca que uses) y el código puede ser compilado en diferentes plataformas con un mínimo de cambios (a veces sin cambios). Lo que cambia son las bibliotecas usadas, esto porque hay sistemas operativo que siguen el estándar POSIX y otros que no, como lo hace Windows (Je. En el mundo de la programación Windows es la oveja negra de la familia, APPLE es la oveja gris, y GNU Linux es la oveja blanca).

Probando las herramientas

Para probar las herramientas primero debemos abrir el cmd presionando ctrl+r y escribiendo cmd en Windows, en Linux debes abrir la terminal. En lo personal recomiendo crear una carpeta para almacenar todos los proyectos que escribiremos en una ubicación aparte (usa en la consola este comando: mkdir workspace) y nos vamos a esa ubicación (cd workspace). Ya allí debemos abrir VScodes o cualquier editor y escribir:

main.c
Ejecutar
//Descargar en: https://github.com/dabl03/C-tutorial-code/tree/main/cap-1
// Esto es un comentario de una línea.
// Todo en esta línea se ignorará después del //
#include <stdio.h>
int main(void){
    // Mostramos dos mensajes por pantalla
    puts("Se instalaron las herramientas correctamente.\n");
    puts("El programa se finalizará cuando presiones enter.");
    // Pedimos un carácter por la consola.
    getchar();
    // Finalizamos el programa.
    return 0;
}
  • Paso 1: Copia y pega el código en el editor.
  • Paso 2: Lo guardamos con el nombre que se quiera, en mi caso lo guardaré como "main.c" (El .c es para indicar que es un archivo de código fuente).
  • Paso 3: Ahora vamos a la consola y escribimos:
    En Windows:
    gcc -o main.exe main.c
    En linux:
    gcc -o main main.c

Si todo ha salido bien te debería mostrar:

Se instalaron las herramientas correctamente.
El programa se finalizará cuando presiones enter.

Ojo: Si salió un error como que "gcc no existe" puede ser porque no tienes la carpeta de MinGW en el PATH, debes colocar la carpeta de los binarios en el PATH (Donde se instalo + /bin/).

Información:


La extensión de .exe (solo para Windows), lo único que hace es indicar que es una aplicación.
En Linux no interesan las extensiones, el sistema operativo tiene su forma para identificar aplicaciones.

Explicación:

  1. #include <stdio.h> Es un preprocesador. Los preprocesadores son usados para hablar con el compilador, en este caso le decimos al compilador que debe importar todo el contenido del archivo stdio.h en el archivo actual. En stdio.h se define funciones especializadas en entrada y salida de datos.
  2. int main(void){
    , esto es para declarar una función, que se llamara main (o principal en español), que retornará un int (integer que significa entero). El (void) indica que la función no necesita un parámetro y da igual si se pasa algunos. El signo "{" indica el comienzo de la función y el signo "}" indica su término.
  3. puts("Mensaje"); aquí se muestra como llamamos a una función del stdio.h que usaremos para mostrar un mensaje por la consola, que será "Mensaje".
  4. return 0; aquí indicamos que la función main retornará 0, lo que significa que el programa corrió sin errores, pero si main retorna otro número significará que ha ocurrido un error.
  5. El ";" después de cada instrucción. Todas las instrucciones deben tener el punto y coma o dará error. Esto es para que el compilador sepa dónde termina cada instrucción. Hay excepciones como donde inicio el "{" y termina el "}" y los preprocesadores. Ejemplo:
    main.c
    //Dentro de la función main:
        puts("Esto dará un error porque no tiene el \";\" al final de esta instrucción.")
        puts("Esto no dará error.");

Nota: toda las APPs C deben tener una función main, esta función será llamada por el Operating System (OS o Sistema Operativo en español) al iniciar el programa.

Antes de finalizar este capitulo, recomiendo ojear la doc oficial, he ir acostumbrándose:

  • ISO C 2018: Este es el estándar actual de como el lenguaje C debe ser.
  • CPPReference: Es un manual de referencia que describe al lenguaje y la biblioteca estándar. Este me gusta usar para saber sobre las funciones estándar.
  • GNU manual: Esta es la documentación de gcc sobre como implemento C y sobre los agregados que ofrece sobre al estándar.

Y listo por este episodio. Gracias por leer:).

Cap 2 - Variables