2010-02-20 4 views
15

C'è un modo per fare verificare la presenza di uguaglianza numerica nelle macro?C macro: #if verificare la presenza di uguaglianza

voglio fare qualcosa di simile

#define choice 3 

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

#if choice == 4 
... 
#endif 

fa C macro hanno il supporto per cose come questa?

+8

Cosa ti ha detto il tuo compilatore? – Christoph

+1

Ancora meglio, che cosa dice il libro di testo/libro di riferimento? –

risposta

3

Per quanto ne so che dovrebbe funzionare. Che compilatore stai usando ?

PS: solo per informazione, i nomi dei nomi sono solitamente scritti in maiuscolo!

#define CHOICE 3

18

Un altro modo per scrivere il codice utilizza incatenato #elif direttive:

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

Nota che se choice non è #defined, il preprocessore tratta come avere il valore 0.