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.h
en 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.
#include
es unpreprocesadordirectiva.
El preprocesador va y busca elstdio.h
en 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.h
en 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 elcalculateAge
función a un archivo separado.
Creo uncalculate_age.c
expediente:
int calculateAge(int year) {
const int CURRENT_YEAR = 2020;
return CURRENT_YEAR - year;
}
Y uncalculate_age.h
archivo donde puse elprototipo de función, que es la misma que la función en el.c
archivo, excepto el cuerpo:
int calculateAge(int year);
Ahora en el principal.c
archivo 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:
- Introducción al lenguaje de programación C
- C Variables y tipos
- C Constantes
- Operadores C
- C Condicionales
- Cómo trabajar con bucles en C
- Introducción a las matrices C
- Cómo determinar la longitud de una matriz en C
- Introducción a las cadenas C
- Cómo encontrar la longitud de una cuerda en C
- Introducción a los punteros C
- Recorriendo una matriz con C
- Booleanos en C
- Introducción a las funciones C
- Cómo usar NULL en C
- Conceptos básicos de E / S en C
- Comillas dobles vs comillas simples en C
- Cómo devolver una cadena de una función C
- Cómo resolver la advertencia de función de biblioteca que declara implícitamente en C
- Cómo verificar el valor de un carácter en C
- Cómo imprimir el carácter de porcentaje usando `printf ()` en C
- Modificadores y especificadores de conversión de C
- Cómo acceder a los parámetros de la línea de comando en C
- Alcance de las variables en C
- ¿Puedes anidar funciones en C?
- Variables estáticas en C
- C Variables globales
- La palabra clave typedef en C
- C tipos enumerados
- Estructuras C
- Archivos de encabezado C
- El preprocesador de C