#if #elif ...
Publicado por quantium (1 intervención) el 01/11/2002 14:47:20
Hola a todos.
Tengo entendido que estas directivas lo que permiten es compilar selectivamente ciertas partes del codigo fuente de un programa. Creo que se llama "compilacion condicional"
Y mi pregunta es: ¿que ventajas tiene usar estas directivas frente a "if", "else" "else if" ...? La unica que se me ocurre es que el programa ira mas rapido en la maquina porque cada vez que se ejecute el programa no tendrea que comprobar algunas variables y demas, por poner un ejemplo:
#define VALOR 5
int main(void)
{
int i=0;
#if VALOR==10
puts("desde 0 - 10");
#elif VALOR==5
puts("desde 0 - 5");
#elif VALOR!=5 || VALOR!=10
puts("no sabemos que va a mostrar");
#endif
for(;i<VALOR;i++) printf("%i\n",i);
return 0;
}
Este programa se podria hacer tambien usando if
#define VALOR 20
int main(void)
{
int i=0;
if( VALOR==10 )
puts("desde 0 - 10");
if( VALOR==5 )
puts("desde 0 - 5");
if( VALOR!=5 || VALOR!=10 )
puts("no sabemos que va a mostrar");
for(;i<VALOR;i++) printf("%i\n",i);
return 0;
}
Con el 2º programa siempre se comprobara el numero de VALOR, con lo que el programa sera mas lento que el primero.
¿alguien me podria mas motivos para usar #if, #else ...?
Muchas gracias a todos y un saludo.
Tengo entendido que estas directivas lo que permiten es compilar selectivamente ciertas partes del codigo fuente de un programa. Creo que se llama "compilacion condicional"
Y mi pregunta es: ¿que ventajas tiene usar estas directivas frente a "if", "else" "else if" ...? La unica que se me ocurre es que el programa ira mas rapido en la maquina porque cada vez que se ejecute el programa no tendrea que comprobar algunas variables y demas, por poner un ejemplo:
#define VALOR 5
int main(void)
{
int i=0;
#if VALOR==10
puts("desde 0 - 10");
#elif VALOR==5
puts("desde 0 - 5");
#elif VALOR!=5 || VALOR!=10
puts("no sabemos que va a mostrar");
#endif
for(;i<VALOR;i++) printf("%i\n",i);
return 0;
}
Este programa se podria hacer tambien usando if
#define VALOR 20
int main(void)
{
int i=0;
if( VALOR==10 )
puts("desde 0 - 10");
if( VALOR==5 )
puts("desde 0 - 5");
if( VALOR!=5 || VALOR!=10 )
puts("no sabemos que va a mostrar");
for(;i<VALOR;i++) printf("%i\n",i);
return 0;
}
Con el 2º programa siempre se comprobara el numero de VALOR, con lo que el programa sera mas lento que el primero.
¿alguien me podria mas motivos para usar #if, #else ...?
Muchas gracias a todos y un saludo.
Valora esta pregunta


0