Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> Lenguaje C

C - Archivos de encabezado

Un archivo de encabezado es un archivo con extensión .h que contiene declaraciones de funciones C y definiciones de macros para compartir entre varios archivos fuente. Hay dos tipos de archivos de encabezado:los archivos que escribe el programador y los archivos que vienen con su compilador.

Solicita usar un archivo de encabezado en su programa incluyéndolo con la directiva de preprocesamiento de C #include , como si hubiera visto la inclusión de stdio.h archivo de encabezado, que viene junto con su compilador.

Incluir un archivo de encabezado es igual a copiar el contenido del archivo de encabezado, pero no lo hacemos porque sería propenso a errores y no es una buena idea copiar el contenido de un archivo de encabezado en los archivos de origen, especialmente si tener múltiples archivos fuente en un programa.

Una práctica simple en los programas C o C++ es que mantenemos todas las constantes, macros, variables globales de todo el sistema y prototipos de funciones en los archivos de encabezado e incluimos ese archivo de encabezado donde sea necesario.

Incluir sintaxis

Tanto el usuario como los archivos de encabezado del sistema se incluyen mediante la directiva de preprocesamiento #include . Tiene las siguientes dos formas −

#include <file>

Este formulario se utiliza para los archivos de encabezado del sistema. Busca un archivo llamado 'archivo' en una lista estándar de directorios del sistema. Puede anteponer directorios a esta lista con la opción -I mientras compila su código fuente.

#include "file"

Este formulario se utiliza para los archivos de encabezado de su propio programa. Busca un archivo llamado 'archivo' en el directorio que contiene el archivo actual. Puede anteponer directorios a esta lista con la opción -I mientras compila su código fuente.

Incluir operación

El #incluye La directiva funciona indicando al preprocesador C que escanee el archivo especificado como entrada antes de continuar con el resto del archivo fuente actual. La salida del preprocesador contiene la salida ya generada, seguida de la salida resultante del archivo incluido, seguida de la salida que proviene del texto después de #include directiva. Por ejemplo, si tiene un archivo de encabezado header.h de la siguiente manera −

char *test (void);

y un programa principal llamado program.c que usa el archivo de encabezado, así −

int x;
#include "header.h"

int main (void) {
   puts (test ());
}

el compilador verá el mismo flujo de tokens que vería si program.c leyera.

int x;
char *test (void);

int main (void) {
   puts (test ());
}

Encabezados de una sola vez

Si un archivo de encabezado se incluye dos veces, el compilador procesará su contenido dos veces y dará como resultado un error. La forma estándar de evitar esto es encerrar todo el contenido real del archivo en un condicional, como este −

#ifndef HEADER_FILE
#define HEADER_FILE

the entire header file file

#endif

Esta construcción se conoce comúnmente como contenedor #ifndef . Cuando se vuelva a incluir el encabezado, el condicional será falso, porque se define HEADER_FILE. El preprocesador omitirá todo el contenido del archivo y el compilador no lo verá dos veces.

Incluye calculado

A veces es necesario seleccionar uno de los varios archivos de encabezado diferentes para incluirlo en su programa. Por ejemplo, pueden especificar parámetros de configuración que se utilizarán en diferentes tipos de sistemas operativos. Podrías hacer esto con una serie de condicionales de la siguiente manera −

#if SYSTEM_1
   # include "system_1.h"
#elif SYSTEM_2
   # include "system_2.h"
#elif SYSTEM_3
   ...
#endif

Pero a medida que crece, se vuelve tedioso, en su lugar, el preprocesador ofrece la posibilidad de utilizar una macro para el nombre del encabezado. Esto se denomina inclusión calculada . En lugar de escribir un nombre de encabezado como argumento directo de #include , simplemente pones un nombre de macro allí −

#define SYSTEM_H "system_1.h"
...
#include SYSTEM_H

SYSTEM_H se expandirá y el preprocesador buscará system_1.h como si #include había sido escrito de esa manera originalmente. SYSTEM_H podría ser definido por su Makefile con una opción -D.


Lenguaje C

  1. Manejo de archivos C
  2. E/S de archivo de Python
  3. Clase de archivo Java
  4. Introducción a los archivos STL
  5. Operaciones de E/S de archivos de Verilog
  6. C - E/S de archivo
  7. Archivos y flujos de C++
  8. C# - E/S de archivos
  9. Python - E/S de archivos
  10. ¿Qué es un archivo triangular?
  11. ¿Qué es un archivo Mill?