English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial básica del lenguaje C

Control de flujo del lenguaje C

Funciones en C

Arreglos en C

Punteros en C

Cadenas en C

Estructura del lenguaje C

Archivo del lenguaje C

Otro C

Manual de referencia del lenguaje C

Archivos de cabecera en C

Un archivo de encabezado tiene la extensión .h Este archivo contiene declaraciones de funciones C y definiciones de macros, que se comparten y se citan en varios archivos de origen. Hay dos tipos de archivos de encabezado: los archivos de encabezado escritos por los programadores y los archivos de encabezado proporcionados por el compilador.

Para usar un archivo de encabezado en un programa, es necesario usar la instrucción de preprocesamiento C #include Para citarlo. Hemos visto anteriormente stdio.h Un archivo de encabezado, que es un archivo de encabezado proporcionado por el compilador.

Citar un archivo de encabezado es equivalente a copiar su contenido, pero no copiaremos directamente el contenido del archivo de encabezado en el archivo de origen, porque hacerlo es muy susceptible a errores, especialmente cuando el programa está compuesto por varios archivos de origen.

Una práctica simple en C o C++ 程序中,建议把所有的常量、宏、系统全局变量和函数原型写在头文件中,在需要的时候随时引用这些头文件。

En el programa, se recomienda escribir todas las constantes, macros, variables globales del sistema y prototipos de funciones en los archivos de encabezado y referenciar estos archivos de encabezado en cualquier momento cuando se necesiten.

Sintaxis de inclusión de archivos de encabezado #include Uso de instrucciones de preprocesamiento

Se pueden referenciar archivos de encabezado de usuario y del sistema. Su forma tiene dos variantes:

#include <file> -Esta forma se utiliza para referenciar archivos de encabezado de usuario. Busca el archivo llamado file en el directorio que contiene el archivo actual. Al compilar el código fuente, puede usar

Esta forma se utiliza para referenciar archivos de encabezado del sistema. Busca el archivo llamado file en la lista estándar de directorios del sistema. Al compilar el código fuente, puede usar

#include "file" -Esta forma se utiliza para referenciar archivos de encabezado de usuario. Busca el archivo llamado file en el directorio que contiene el archivo actual. Al compilar el código fuente, puede usar

La opción I coloca el directorio al principio de esta lista.

#include operaciones de inclusión de archivos de encabezado #include La instrucción siguiente indica que el preprocesador de C revise el archivo especificado como entrada. La salida del preprocesador incluye la salida generada, la salida generada por el archivo citado y

char *test(void);

y un programa principal que utiliza el archivo de encabezado program.c, como se muestra a continuación:

int x;
#include "header.h"
int main(void)
{
   puts(test());
}

El compilador verá la información de código siguiente:

int x;
char *test(void);
int main(void)
{
   puts(test());
}

Referencia de un archivo de encabezado solo una vez

Si un archivo de encabezado se referencia dos veces, el compilador procesará el contenido del archivo dos veces, lo que producirá un error. Para evitar esto, la práctica estándar es colocar todo el contenido del archivo dentro de una instrucción de compilación condicional, como se muestra a continuación:

#ifndef HEADER_FILE
#define HEADER_FILE
todo el archivo de encabezado
#endif

Esta estructura se conoce comúnmente como envoltorio #ifndef. Cuando se vuelve a referenciar el archivo de encabezado, la condición es falsa porque HEADER_FILE ya está definido. En este caso, el preprocesador saltará todo el contenido del archivo, y el compilador lo ignorará.

referencia condicional

A veces, es necesario seleccionar una referencia de varios archivos de encabezado diferentes para incluir en el programa. Por ejemplo, es necesario especificar los parámetros de configuración utilizados en diferentes sistemas operativos. Puede lograr esto mediante una serie de condiciones, como se muestra a continuación:

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

Pero cuando hay muchos archivos de encabezado, hacer esto es muy inapropiado, el preprocesador utiliza macros para definir el nombre de los archivos de encabezado. Esto se llamareferencia condicionalNo se utiliza el nombre del archivo de encabezado como #include Los parámetros directos, simplemente utilice el nombre del macro en su lugar:

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

El SYSTEM_H se expande, el preprocesador buscará system_1.h, como #include Escribido originalmente de esa manera. El SYSTEM_H se expande, el preprocesador buscará system_ -La opción D está definida en su Makefile.