在当前的项目中,我正在进行大量试验,以了解不同解决方案对性能的影响。由于我喜欢保留所有代码,因此我有很多#ifdef指令,这使我可以轻松地打开和关闭某些优化。但是,未涵盖某些定义组合。如果发生这种情况,我希望看到编译器错误,即:
#define A
#define B
#ifdef A
#ifdef B
//invalid combination of defines. Compiler should raise an error.
#endif
#endif
#ifdef A
//do something
#endif
#ifdef B
//do something else
#endif
这可能吗?
答案 0 :(得分:8)
是。只需使用error directive(#error
)。
#ifdef A
#ifdef B
#error "invalid combination of defines."
#endif
#endif
答案 1 :(得分:2)
#ifdef A
#ifdef B
//invalid combination of defines. Compiler should raise an error.
#error Invalid combination
#endif
#endif
答案 2 :(得分:2)
使用错误预处理程序指令:
#error "Invalid combination"
答案 3 :(得分:2)
#if defined(A) && defined(B)
#error invalid combination of defines
#endif