La diferencia entre la compilación condicional y la declaración If en lenguaje C, a qué situaciones se aplica cada una
La compilación condicional es la parte de preprocesamiento del lenguaje C. Es la primera parte que el compilador procesa al compilar el código.
La compilación condicional contiene declaraciones de juicio, como #if, #else, #elif y #endif
Significa que si se cumplen las condiciones macro, el compilador compilará este código; de lo contrario, el compilador ignorará este código y no lo compilará, como
#define A 0 //Definir A como 0
#if (A > 1)
printf("A > 1"); //El compilador no lo hizo. compilar Esta declaración no genera código ensamblador
#elif (A == 1)
printf("A == 1"); //El compilador no compiló esta declaración, Esta declaración no genera código ensamblador
#else
printf("A < 1"); //El compilador compiló este código y generó código ensamblador, ejecute esta declaración
#endif
Este no es el caso de la declaración if. If es una palabra clave en el lenguaje C. Determina qué declaración ejecutar en función del resultado del cálculo de cada declaración. it Se compilan todas las ramas, como
#define A 0
if (A > 1)
printf("A > 1"); Compilar El compilador compila la declaración, pero no se ejecuta porque A == 0
else if(A == 1)
printf("A == 1"); /El compilador compila Esta declaración no se ejecuta porque A == 0
else
printf("A < 1"); //El compilador compila esta declaración, pero se ejecuta porque A == 0
En pocas palabras, la compilación condicional consiste en compilar selectivamente declaraciones basadas en condiciones macro, lo cual lo hace el compilador al compilar el código
Las declaraciones condicionales se seleccionan en función; en expresiones condicionales Las declaraciones se ejecutan permanentemente mientras el programa se está ejecutando.