这段代码可以工作,但是随着添加更多的预处理器定义,它变得臃肿:
#define TEST1
#define TEST2
#define TEST3
#if (!TEST1 && !TEST2 && !TEST3)
#error Must define at min one of TEST1, TEST2, TEST3
#elif (TEST1 && (TEST2 || TEST3)) || (TEST2 && (TEST1 || TEST3)) || (TEST3 && (TEST1 || TEST2))
#error Must define at max one of TEST1, TEST2, TEST3
#endif
基本上,一次只能定义一个预处理器指令。
添加另一个需要写出所有可能的组合。
有什么我不知道的技巧可以解决这个问题吗?