Compilar codigo condicional

Iniciado por x64core, 14 Septiembre 2012, 23:09 PM

0 Miembros y 1 Visitante están viendo este tema.

x64core

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

avesudra

#1
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!
Regístrate en