Trong/C++ Dự án C của chúng tôi, chúng tôi sử dụng một tiêu đề cấu hình (~ 1000 dòng) đó là đầy đủ cáC# ifdef và # định nghĩaAlternatives/Công cụ cho #define địa ngục C/C++
#if (defined(HW_1) || defined(SOME_TECHNOLOGY_SUPPORTED)) && defined(OTHER_TECHNOLOGY_SUPPORTED)
#define SOME_FEATURE_AVAILABLE
#endif
Trong cấu hình xây dựng, chúng tôi định nghĩa trước một số định nghĩa được chuyển tới trình biên dịch. Điều này dẫn đến các định nghĩa khác nhau (như SOME_FEATURE_AVEILABLE) trong tiêu đề cấu hình của chúng ta.
Vì tiêu đề cấu hình của chúng tôi khá lớn, cũng có một chút lộn xộn.
Có bất kỳ giải pháp thay thế nào cho địa chỉ #define
địa ngục này không?
Hoặc có bất kỳ công cụ nào giúp xem trong trường hợp xác định được đặt hay không.
Chúng tôi đang phát triển phần mềm nhúng để chúng tôi không thể thay thế biên dịch có điều kiện theo thời gian chạy nếu có.
Bạn sẽ biên dịch hệ thống nào. Đối với hệ điều hành nào? Tìm kiếm 'autoconf' và' autotools' .... –
Nếu bạn gắn bó với ANSI C89 và ISO C++ 98, thì bạn không cần bất kỳ thứ gì trong số chúng. –
Trình biên dịch có thể tối ưu hóa nếu có điều kiện nếu bạn định nghĩa boolean const tĩnh. – Frodo