Làm cách nào để sử dụng #ifdef với điều kiện OR?


244

Xin lỗi vì đã hỏi câu hỏi rất cơ bản. Tôi muốn đặt điều kiện HOẶC trong lệnh #ifdef.? Làm thế nào để làm điều đó ? Tôi đã thử

#ifdef LINUX | ANDROID
...
..
#endif 

Nó không hoạt động? Cách thích hợp là gì?


15
Nếu bạn đang sử dụng |cho "hoặc" trong điều kiện C của bạn, bạn đã làm sai.
Jonathon Reinhart

Câu trả lời:


523

Như thế này

#if defined(LINUX) || defined(ANDROID)

24

HOẶC điều kiện trong #ifdef

#if defined LINUX || defined ANDROID
//...
#endif

hoặc là-

#if defined(LINUX) || defined(ANDROID)
//...
#endif

Cả hai ở trên đều giống nhau, cái nào bạn sử dụng đơn giản phụ thuộc vào sở thích của bạn.


PS : #ifdefchỉ đơn giản là hình thức ngắn #if defined, tuy nhiên không hỗ trợ điều kiện phức tạp.


Thêm nữa-

  • VÀ: #if defined LINUX && defined ANDROID
  • XOR: #if defined LINUX ^ defined ANDROID
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.