Archivos de encabezado C

Cómo usar archivos de encabezado C para separar un programa en varios archivos

Los programas simples se pueden poner en un solo archivo, pero cuando su programa crece, es imposible mantenerlo todo en un solo archivo.

Puede mover partes de un programa a un archivo separado y luego crear unarchivo de cabecera.

Un archivo de encabezado parece un archivo C normal, excepto que termina con.hen vez de.c, y en lugar de las implementaciones de sus funciones y las otras partes de un programa, contiene ladeclaraciones.

Ya usó archivos de encabezado cuando usó por primera vez elprintf()función, u otra función de E / S, y tenía que escribir:

#include <stdio.h>

para usarlo.

#includees unpreprocesadordirectiva.

El preprocesador va y busca elstdio.hen la biblioteca estándar, porque usó corchetes alrededor. Para incluir sus propios archivos de encabezado, usará comillas, como esta:

#include "myfile.h"

Lo de arriba mirará hacia arribamyfile.hen la carpeta actual.

También puede utilizar una estructura de carpetas para bibliotecas:

#include "myfolder/myfile.h"

Pongamos un ejemplo. Este programa calcula los años desde un año determinado:

#include <stdio.h>

int calculateAge(int year) {
  const int CURRENT_YEAR = 2020;
  return CURRENT_YEAR - year;
}

int main(void) { printf("%u", calculateAge(1983)); }

Suponga que quiero mover elcalculateAgefunción a un archivo separado.

Creo uncalculate_age.cexpediente:

int calculateAge(int year) {
  const int CURRENT_YEAR = 2020;
  return CURRENT_YEAR - year;
}

Y uncalculate_age.harchivo donde puse elprototipo de función, que es la misma que la función en el.carchivo, excepto el cuerpo:

int calculateAge(int year);

Ahora en el principal.carchivo podemos ir y eliminar elcalculateAge()definición de función, y podemos importarcalculate_age.h, que hará que elcalculateAge()función disponible:

#include <stdio.h>
#include "calculate_age.h"

int main(void) {
  printf("%u", calculateAge(1983));
}

No olvide que para compilar un programa compuesto por varios archivos, debe enumerarlos todos en la línea de comandos, así:

gcc -o main main.c calculate_age.c

Y con configuraciones más complejas, es necesario un Makefile para decirle al compilador cómo compilar el programa.

Descarga mi gratisManual de C


Más tutoriales de clang: