在 C 和 C++ 中,当像这样使用宏时:
#if ( 1 == __MY_MACRO__ )
// Some code
#endif
如果 MY_MACRO 未定义,编译器将不会捕获并将其视为 0。当代码设计旨在必须定义宏时,这可能会导致很多隐藏的错误 (非零)。
有没有办法让编译器报告这个,即使编译器本身并不寻找这样的东西?
最佳答案
使用#if defined(__MY_MACRO__)<
来测试宏值是否被定义。
关于c++ - 防止未定义的宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25379300/