2010-02-20 5 views
15

Czy istnieje sposób sprawdzenia równości liczbowej w makrach?C makro: kontrola #if dla równości

chcę zrobić coś jak

#define choice 3 

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

#if choice == 4 
... 
#endif 

makr Czy w C posiada wsparcie dla tego typu rzeczy?

+8

Co powiedział twój kompilator? – Christoph

+1

Co więcej, co mówi podręcznik/książka informacyjna? –

Odpowiedz

3

O ile wiem, to powinno działać. Z jakiego kompilatora korzystasz?

PS: Dla celów informacyjnych nazwy są zazwyczaj pisane w czapkach!

#define CHOICE 3

18

Innym sposobem, aby napisać swój kod wykorzystuje przykuty #elif dyrektyw:

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

pamiętać, że jeśli nie jest #definedchoice, preprocesor traktuje ją jako posiadające wartość 0.