c++ - 防止未定义的宏

标签 c++ c macros c-preprocessor

在 C 和 C++ 中,当像这样使用宏时:

#if ( 1 == __MY_MACRO__ )
// Some code
#endif

如果 MY_MACRO 未定义,编译器将不会捕获并将其视为 0。当代码设计旨在必须定义宏时,这可能会导致很多隐藏的错误 (非零)。

有没有办法让编译器报告这个,即使编译器本身并不寻找这样的东西?

最佳答案

使用#if defined(__MY_MACRO__)<​​ 来测试宏值是否被定义。

关于c++ - 防止未定义的宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25379300/

相关文章:

c++ - '*' 标记之前的预期主表达式

c - 如何将 HFCLK 更改为由微处理器上的低频振荡器控制?

c - Linux 中的 IS_ERR() 宏

C++ 重新声明局部变量有什么作用?

c++ - 如何修复 C++ 中的 'Heap has been corrupted ' 错误?

C题, '->'左边必须指向class/struct/union/generic类型?

C 编程 ScanF 多输入一文件

macros - Clojure 宏中的类型提示 deftype

ios - MACRO 函数不返回 Objective-C 对象

c++ - 为什么这个返回值? C++ int/char 混淆