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
#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.