Colección de citas famosas - Slogan de motivación - El papel de la compilación condicional en lenguaje C

El papel de la compilación condicional en lenguaje C

La compilación condicional es una de las tres definiciones de macro. El objetivo principal del indicador condicional es evitar la inclusión y compilación repetidas de archivos de encabezado. Por ejemplo: un archivo c contiene el mismo archivo h varias veces. la definición de macro #ifndef, se producirá un error de definición de variable repetida

Hay cuatro comandos de preprocesamiento comúnmente utilizados en la compilación condicional: #if, #else, #elif y #endif.

La forma de la directiva #if es: #if?Expresión constante

Bloque de código

#endif

La constante después de # si la expresión es un valor, se compila el código entre ella y #endif; de lo contrario, estos códigos se omiten. La directiva #endif marca el final de un bloque #if.

#else se utiliza para marcar el final del bloque #if y el comienzo del bloque #else. Esto es necesario porque cualquier #if tiene solo un #endif asociado.

#elif significa "else if", que forma una declaración anidada if else if para múltiples opciones de compilación. #elif va seguido de una expresión constante. Si la expresión es verdadera, el bloque de código posterior se compila y otras expresiones #elif no se prueban. De lo contrario, el siguiente bloque se prueba secuencialmente. Los formularios comunes son los siguientes:

Formulario 1: #ifdef?Identificador

/*Program segment?1*/

#else

/*Program segment?2*/

#endif

Su función es compilar el segmento 1 del programa cuando el identificador ha sido definido por #define, en caso contrario compilar el segmento 2 del programa. También puede utilizar el formulario simple #ifdef? identificador

/*Segmento de programa 1*/

 ?  #endif

Formulario 2:?  #ifndef?

#define?Identifier

/*¿Sección de programa?1*/

#else

/*¿Sección de programa 2*/

#endif

Su función es compilar el segmento 1 del programa cuando el identificador no ha sido definido por #define, de lo contrario compilar el segmento 2 del programa, ¿también se puede usar la forma simple #? ifndef?Identifier

#define?Identifier

/*Program segment?1*/

#?endif

Formulario 3: # if?Expresión

/*Sección de programa?1*/

#else

*Sección de programa?2*/

#? endif

Su función es compilar el segmento 1 del programa cuando el valor de la "expresión" es verdadero. De lo contrario, se compila el segmento de programa 2, o la forma simple #?if?expression

/*program segment?1*/

#?endif

Formulario 4: #if?Expresión 1

/*Sección de programa?1*/

#elif?Expresión 2

/*Sección de programa?2 */

............

#elif?Expresión n

/*Segmento de programa n?*/

#endif

Su función es compilar el segmento de programa 1 cuando el valor de la "expresión 1" es 1, y compilar el segmento de programa 2 si el valor de la expresión 2 es verdadero, de lo contrario se juzgará secuencialmente . a la expresión n.

Finalmente, la condición de la compilación condicional es una expresión constante que admite operaciones lógicas AND && y OR ||. Las cuatro formas anteriores de estructuras de preprocesamiento de compilación condicional se pueden anidar.

Identificador: en teoría, se puede nombrar libremente, pero el identificador de cada archivo de encabezado debe ser único. La regla de nomenclatura del logotipo es generalmente que el nombre del archivo de encabezado esté escrito en mayúsculas, con guiones bajos antes y después, y el "." en el nombre del archivo también se cambia a subrayado, como: stdio.h. #ifndef?_STDIO_H_

#define?_STDIO_H_

/*¿Sección de programa?*/

#endif