Red de conocimiento informático - Material del sitio web - Problemas con archivos de encabezado en la programación en lenguaje C basada en el microcontrolador 51

Problemas con archivos de encabezado en la programación en lenguaje C basada en el microcontrolador 51

1. Ubicación del archivo de encabezado

#include Priorizar la búsqueda de archivos de encabezado en la ruta predeterminada del sistema

#include "xxx.h " ya está disponible Búsqueda de ruta de proyecto para archivos de encabezado

2. #ifndef y #endif

La forma habitual es

#ifndef _xxxx_h_

#define _xxxx_h_

.........(contenido específico del archivo de encabezado)

#endif

Esta forma de escribir significa que si _xxxx_h_ aún no se ha definido, entonces se ejecutará el contenido del archivo de encabezado. Si se ha definido, entonces el contenido del archivo de encabezado no se ejecutará. La función es que si diferentes archivos C llaman a un archivo de encabezado al mismo tiempo, entonces el contenido interno no causará errores debido a definiciones repetidas, porque no importa cuántas veces se llame al archivo de encabezado, su contenido solo se ejecutará. la primera vez que aparece, y se definirá un _ al mismo tiempo, xxxx_h_, cuando se vuelva a llamar en el futuro, se ignorará el contenido del archivo de encabezado.

3. Funciones y macros

Supongamos que existen los siguientes archivos main.c aaa.c aaa.h

Entre ellos, aaa.c contiene una macro X, una función Y, y X se usa en la función Y

La función Y se declara en aaa.h

Main.c contiene el archivo aaa.h y llama a la función Y, pero Si la macro X no está definida

entonces no habrá ningún error durante la compilación. Esto significa que cuando la macro

Cambio 1: la situación anterior permanece sin cambios, pero reescribe toda la función Y en main.c<. /p>

Error de compilación, que muestra "error C202: 'X': identificador no definido"

Explique que la función Y no puede encontrar la macro X en el archivo main.c en este momento, por lo que el mensaje es un símbolo indefinido

Cambio 2: corte la macro en aaa.c a main.c, las otras condiciones permanecen sin cambios

Un error de compilación también muestra "error C202: 'X': identificador undefinido"

Conclusión: si una macro aparece en una función, entonces la función puede y solo puede buscar la macro en el archivo c donde se encuentra. Si las dos no están en el mismo archivo c , se producirá un error.