2010-02-20 17 views
15

¿Hay alguna forma de comprobar la igualdad numérica en las macros?C macro: # si se comprueba la igualdad

yo a querer hacer algo así como

#define choice 3 

#if choice == 3 
    .... 
#endif 

#if choice == 4 
... 
#endif 

macros ¿El C tiene soporte para este tipo de cosas?

+8

¿Qué le dijo su compilador? – Christoph

+1

Mejor aún, ¿qué dice el libro de texto/libro de referencia? –

Respuesta

3

Por lo que sé que debería funcionar. Qué compilador estas usando ?

PD: ¡A título informativo, los nombres definidos se suelen escribir en mayúsculas!

#define CHOICE 3

18

Otra manera de escribir el código utiliza encadenados #elif directivas:

#if choice == 3 
    ... 
#elif choice == 4 
    ... 
#else 
    #error Unsupported choice setting 
#endif 

Tenga en cuenta que si no es choice#defined, el preprocesador lo trata como que tiene el valor 0.