Hola a todos, quisiera saber si alguien sabé como puedo agregar un case condicional para el compilador basado en una agregacion de
una cabecera, veran tengo un switch:
switch(h)
{
case a1:
...
break;
case a2:
....
break;
// quiero que sea condicional este case ////////////
case a3:
...
...
break;
//////////////////////////////////////////////////////////
}
me gustaria que depenciendo si agrego una X cabecera (.h) compilara o no ese codigo, por ejemplo si agrego #include "a.h" ese case
se compila de lo contrario no lo haga, intente jugar un poco con los #if, etc pero no logre :P alguien lo ha hecho?
Gracias
Es muy fácil RHL , he pensado un poquito porque no lo entendía, mira tu tienes tu a.h(mira los comentarios eh)
#define ESTAINCLUIDO 0 ;Lo definimos , para ver si está definido en el .c , si se agrega esto pues estará definido.
y tu a.c
#include <stdio.h>
#include <stdlib.h>
int main(int argc,char **argv)
{
int h = 0; //para que se vea un ejemplo correcto , no es para más.
switch(h)
{
case a1:
//codigo
break;
case a2:
//codigo
break;
//Esta instrucción se entiende como , si está definido...
#ifdef ESTAINCLUIDO //Si agregamos el archivo a.h estará definido ,entonces compilará el trozo de código encerrado entre el #ifdef y el #endif
//los cases y el código que quieras...
case a3:
//codigo
break;
//Esta directiva del preprocesador se interpreta como que se acaba el trozo que puede , o nó, compilar.
#endif
}
}
return 0;
}
¡Un saludo!
Gracias :)