Учитывая проект C, который должен поддерживать несколько сред, как мне использовать препроцессор, чтобы обеспечить определение только одной среды?
Я уже умею:
#if defined PROJA (blah blah blah) #elif defined PROJB (etc) #else #error "No project defined" #endif
Однако все, что он делает, это говорит мне, определено ли 0 проектов. Если какая-то полезная душа определяет и проект A, и проект B, препроцессор примет только проект A. Однако правильное поведение, с моей точки зрения, — пометить ошибку.
Конечно, если определены только два проекта, эта проблема тривиальна. Как мне решить это с 200?