2010-02-20 34 views
15

Có cách nào để kiểm tra tính bình đẳng bằng số trong macro không?Macro C: #if kiểm tra tính bình đẳng

tôi muốn làm một cái gì đó giống như

#define choice 3 

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

#if choice == 4 
... 
#endif 

macro Liệu C có hỗ trợ cho những thứ như thế này?

+8

Trình biên dịch của bạn cho bạn biết điều gì? – Christoph

+1

Tốt hơn, sách giáo khoa/sách tham khảo nói gì? –

Trả lời

3

Theo như tôi biết điều đó sẽ hiệu quả. Bạn đang sử dụng trình biên dịch nào?

PS: Chỉ để biết thông tin, tên xác định thường được viết bằng chữ hoa!

#define CHOICE 3

18

Một cách khác để viết mã của bạn sử dụng xích #elif directives:

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

Lưu ý rằng nếu choice không phải là #defined, Preprocessor đối xử với nó như có giá trị 0.

Các vấn đề liên quan